diff --git a/conmorfeusz/conmorfeusz/cli/__init__.py b/conmorfeusz/conmorfeusz/cli/__init__.py index fc94063..a71d904 100644 --- a/conmorfeusz/conmorfeusz/cli/__init__.py +++ b/conmorfeusz/conmorfeusz/cli/__init__.py @@ -38,5 +38,9 @@ def run(host, port, workers, ccpl_port, ccpl_model, ccpl_bin, ccpl_core_num, ccp 'workers': workers, } - StandaloneApplication(create_app, options).run() + app_config = { + 'CONCRAFT_PL_PORT': ccpl_port, + } + + StandaloneApplication(create_app, options, app_config).run() diff --git a/conmorfeusz/conmorfeusz/server/__init__.py b/conmorfeusz/conmorfeusz/server/__init__.py index 1f113c1..90f2bc7 100644 --- a/conmorfeusz/conmorfeusz/server/__init__.py +++ b/conmorfeusz/conmorfeusz/server/__init__.py @@ -1,9 +1,10 @@ from gunicorn.app.base import BaseApplication class StandaloneApplication(BaseApplication): - def __init__(self, app_factory, options=None): + def __init__(self, app_factory, options=None, app_config=None): self.options = options or {} self.app_factory = app_factory + self.app_config = app_config or {} super().__init__() def load_config(self): @@ -12,4 +13,4 @@ class StandaloneApplication(BaseApplication): self.cfg.set(key.lower(), value) def load(self): - return self.app_factory() \ No newline at end of file + return self.app_factory(self.app_config) diff --git a/conmorfeusz/conmorfeusz/service/analyzer.py b/conmorfeusz/conmorfeusz/service/analyzer.py index 4c8a309..6f0deab 100644 --- a/conmorfeusz/conmorfeusz/service/analyzer.py +++ b/conmorfeusz/conmorfeusz/service/analyzer.py @@ -63,8 +63,8 @@ def entry_to_dict(entry): } -def analyse(text): +def analyse(text, port): morf = morfeusz2.Morfeusz(expand_tags=True) - conc = concraft.Concraft() + conc = concraft.Concraft(port=port) analysis = morf.analyse(text) return [entry_to_dict(e) for e in conc.disamb(analysis) if len(e) == 6] \ No newline at end of file diff --git a/conmorfeusz/conmorfeusz/web/__init__.py b/conmorfeusz/conmorfeusz/web/__init__.py index 75607d2..da43197 100644 --- a/conmorfeusz/conmorfeusz/web/__init__.py +++ b/conmorfeusz/conmorfeusz/web/__init__.py @@ -1,16 +1,17 @@ from flask import Flask from . import analyzer -def create_app(): +def create_app(config=None): app = Flask(__name__, instance_relative_config=True) + app.config.from_mapping( - SECRET_KEY='dev' + SECRET_KEY='dev', + CONCRAFT_PL_PORT=3000, ) + if config: + app.config.update(config) + app.register_blueprint(analyzer.bp) return app - -def start(port): - app = create_app() - app.run(port=port) \ No newline at end of file diff --git a/conmorfeusz/conmorfeusz/web/analyzer.py b/conmorfeusz/conmorfeusz/web/analyzer.py index 2a91516..b8bb739 100644 --- a/conmorfeusz/conmorfeusz/web/analyzer.py +++ b/conmorfeusz/conmorfeusz/web/analyzer.py @@ -1,4 +1,4 @@ -from flask import Blueprint, request +from flask import Blueprint, request, current_app from conmorfeusz.service import analyzer as service bp = Blueprint('analyser', __name__, url_prefix='/analyser') @@ -8,5 +8,5 @@ def analyze(): data = request.get_json() return { - "analysis": service.analyse(data["text"]) + "analysis": service.analyse(data["text"], current_app.config['CONCRAFT_PL_PORT']) } \ No newline at end of file