Redmine #1835: updated api to use refactored pipeline
This commit is contained in:
		
							parent
							
								
									753cfad794
								
							
						
					
					
						commit
						b931955dcb
					
				| @ -1,44 +1,61 @@ | ||||
| import os | ||||
| 
 | ||||
| 
 | ||||
| import lxml.etree as lxml | ||||
| import shutil | ||||
| import tempfile | ||||
| 
 | ||||
| from flask import Flask, Response | ||||
| from flask_httpauth import HTTPBasicAuth | ||||
| 
 | ||||
| from structure_assignment.pipeline import Pipeline, create_nlp | ||||
| from structure_assignment.pipeline import Runner | ||||
| 
 | ||||
| app = Flask(__name__) | ||||
| api_prefix = os.environ['API_PREFIX'] | ||||
| resource_directory = os.environ['API_RESOURCE_DIR'] | ||||
| 
 | ||||
| nlp = create_nlp(resource_directory) | ||||
| runner = Runner(resource_directory, True) | ||||
| 
 | ||||
| @app.route(api_prefix + '/test/<string:string>', methods=['GET']) | ||||
| def test(string): | ||||
| 
 | ||||
|     string_file_name = '/tmp/string.txt' | ||||
|     parse_file_name = '/tmp/parse.xml' | ||||
| @app.route(api_prefix + '/string_to_parse/<string:string>', methods=['GET']) | ||||
| def string_to_parse(string): | ||||
| 
 | ||||
|     tmp_directory = tempfile.mkdtemp() | ||||
|     string_file_name = tmp_directory + '/tmp/string.txt' | ||||
|     parsed_file_name = tmp_directory + '/tmp/parsed.xml' | ||||
| 
 | ||||
|     with open(string_file_name, 'w') as string_file: | ||||
|         string_file.write(string + '\n') | ||||
| 
 | ||||
|     try: | ||||
|         # pipeline = Pipeline(nlp) | ||||
|         # pipeline.import_file(string_file_name, 'strings-list') | ||||
|         # pipeline.do_tokenise() | ||||
|         # pipeline.do_tweak_conllu() | ||||
|         # pipeline.do_parse() | ||||
|         # pipeline.do_translate_jos() | ||||
|         # pipeline.do_conllu_to_tei() | ||||
|         # pipeline.export_file(parse_file_name, 'tei-initial') | ||||
|         # pipeline.cleanup() | ||||
|         import sys | ||||
|         sys.path.insert(0, resource_directory) | ||||
|         print(sys.path) | ||||
|         import wani | ||||
|         tei = lxml.parse(parse_file_name).getroot() | ||||
|         message = lxml.tostring(tei, encoding='UTF-8', pretty_print=True).decode() | ||||
|         runner.strings_to_parse(string_file_name, parsed_file_name) | ||||
|         root = lxml.parse(parse_file_name).getroot() | ||||
|         message = lxml.tostring(root, encoding='UTF-8', pretty_print=True).decode() | ||||
|         shutil.rmtree(tmp_directory) | ||||
|     except Exception as e: | ||||
|         message = lxml.tostring('<error>' + str(e) + '</error>').decode() | ||||
| 
 | ||||
|     return Response(message, mimetype='text/xml') | ||||
| 
 | ||||
| 
 | ||||
| @app.route(api_prefix + '/string_to_dictionary/<string:string>', methods=['GET']) | ||||
| def string_to_dictionary(string): | ||||
| 
 | ||||
|     tmp_directory = tempfile.mkdtemp() | ||||
|     string_file_name = tmp_directory + '/tmp/string.txt' | ||||
|     dictionary_file_name = tmp_directory + '/tmp/dict.xml' | ||||
|     structure_file_name = tmp_directory + '/tmp/structures.xml' | ||||
| 
 | ||||
|     with open(string_file_name, 'w') as string_file: | ||||
|         string_file.write(string + '\n') | ||||
| 
 | ||||
|     try: | ||||
|         runner.strings_to_dictionary(string_file_name, dictionary_file_name, structure_file_name) | ||||
|         dictionary_root = lxml.parse(dictionary_file_name).getroot() | ||||
|         structure_root = lxml.parse(structure_file_name).getroot() | ||||
|         root = lxml.Element('root') | ||||
|         root.append(structure_root) | ||||
|         root.append(dictionary_root) | ||||
|         message = lxml.tostring(root, encoding='UTF-8', pretty_print=True).decode() | ||||
|         shutil.rmtree(tmp_directory) | ||||
|     except Exception as e: | ||||
|         message = lxml.tostring('<error>' + str(e) + '</error>').decode() | ||||
| 
 | ||||
|     return Response(message, mimetype='text/xml') | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user