11"""
2- Copyright 2016 Thomas Pellissier Tanon All Rights Reserved.
2+ Copyright 2016-2017 Thomas Pellissier Tanon All Rights Reserved.
33Licensed under the Apache License, Version 2.0 (the "License");
44you may not use this file except in compliance with the License.
55You may obtain a copy of the License at
1414
1515from flask import Flask , request , jsonify , redirect
1616from flask_swaggerui import build_static_blueprint , render_swaggerui
17- from werkzeug .exceptions import BadRequest
18-
19- import parsey
17+ from syntaxnet_wrapper import parser , language_code_to_model_name
18+ from werkzeug .exceptions import BadRequest , InternalServerError
2019
2120# Flask setup
22- _flask_app = Flask (__name__ )
21+ app = Flask (__name__ )
2322logging .basicConfig (level = logging .INFO )
2423
2524
26- @_flask_app .route ('/' )
25+ @app .route ('/' )
2726def _root ():
2827 return redirect ('/v1' )
2928
3029
31- @_flask_app .route ('/v1' )
30+ @app .route ('/v1' )
3231def _v1 ():
3332 return render_swaggerui (swagger_spec_path = '/v1/swagger.json' )
3433
3534
36- @_flask_app .route ('/v1/parsey-universal-full' , methods = ['POST' ])
35+ @app .route ('/v1/parsey-universal-full' , methods = ['POST' ])
3736def _parsey_universal_full_handler ():
3837 text = request .get_data ()
3938 language_code = request .headers .get ('Content-Language' , 'en' ).lower ()
40- print (text )
41- print (language_code )
42-
4339 try :
44- conllu = parsey .parsey_universal_full_conllu (text , language_code )
45- return _flask_app .response_class (conllu , mimetype = 'text/plain; charset=utf-8' )
40+ conllu = parser [language_code ].query (text , returnRaw = True )
41+ if conllu is None :
42+ raise InternalServerError ('Bad SyntaxNet output' )
43+ return app .response_class (conllu , mimetype = 'text/plain; charset=utf-8' )
4644 except ValueError as e :
4745 raise BadRequest (e )
4846
4947
50- @_flask_app .route ('/v1/swagger.json' )
48+ @app .route ('/v1/swagger.json' )
5149def _v1_spec ():
5250 return jsonify ({
5351 'swagger' : '2.0' ,
@@ -83,7 +81,7 @@ def _v1_spec():
8381 'description' : 'The text language.' ,
8482 'required' : True ,
8583 'type' : 'string' ,
86- 'enum' : sorted (parsey . available_languages .keys ())
84+ 'enum' : sorted (language_code_to_model_name .keys ())
8785 }
8886 ],
8987 'consumes' : [
@@ -106,6 +104,7 @@ def _v1_spec():
106104 })
107105
108106
109- _flask_app .register_blueprint (build_static_blueprint ('swaggerui' , __name__ ))
107+ app .register_blueprint (build_static_blueprint ('swaggerui' , __name__ ))
110108
111- _flask_app .run (port = 7000 )
109+ if __name__ == '__main__' :
110+ app .run (port = 7000 )
0 commit comments