From e4730c40e16f7f3f3ce010a0ae050982f37bb7f0 Mon Sep 17 00:00:00 2001 From: voje Date: Sat, 6 Apr 2019 19:38:36 +0200 Subject: [PATCH] fixed a few bugs; todo: senses --- Makefile | 6 +++-- README.md | 6 ++++- src/backend_flask/app.py | 26 ++++++++++++------- src/backend_flask/conf_files/dev_conf.yaml | 2 +- .../conf_files/dev_conf_init.yaml | 7 +++++ src/frontend_vue/package-lock.json | 2 +- src/frontend_vue/src/components/MainDispl.vue | 8 ++++-- 7 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 src/backend_flask/conf_files/dev_conf_init.yaml diff --git a/Makefile b/Makefile index 01eac9c..566fd01 100644 --- a/Makefile +++ b/Makefile @@ -75,8 +75,10 @@ frontend-prod: ## Backend -backend-env: python-env-install - +backend-dev-init: python-env-install + cd ./src/backend_flask; python3 app.py \ + --config-file ./conf_files/dev_conf_init.yaml \ + --dbuser $(DB_USR_USER) --dbpass $(DB_USR_PASS) --dbaddr $(DBADDR) backend-dev: python-env-install cd ./src/backend_flask; python3 app.py \ diff --git a/README.md b/README.md index 2322cdd..df65013 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,11 @@ Relies heavily on the database. Set that up first. ```bash $ make python-env -# $ make backend-dev # development +# development: +$ make backend-dev-init # run the first time, to prepare the db, then kill +$ make backend-dev # debug with this one + +# production $ make backend-prod ``` diff --git a/src/backend_flask/app.py b/src/backend_flask/app.py index 557e2e7..f4d2c4b 100644 --- a/src/backend_flask/app.py +++ b/src/backend_flask/app.py @@ -37,7 +37,7 @@ SENSEMAP_COLL = "sensemap" # pre-generated data (gui leftside word index) CORPORA = ["ssj", "kres"] -app_index = {c: {} for c in CORPORA} +app_index = None log = logging.getLogger(__name__) valdb = None @@ -239,7 +239,6 @@ def prepare_frames(ret_frames): # append sentences for frame in ret_frames: unique_sids = {".".join(x.split(".")[:-1]): x for x in frame.tids} - log.debug(str(unique_sids)) # frame.sentences = [] frame.aggr_sent = {} # sid, tid==hw @@ -268,8 +267,13 @@ def api_get_frames(): rf_name = request.args.get("rf", "reduce_0") # 2nd is default RF = reduce_functions[rf_name]["f"] + corpus = request.args.get("cor") + if corpus not in CORPORA: + return json.dumps({"error": "cor={kres,ssj}"}) + # entry = vallex.entries[hw] # TODO hw -> [Frame,] - cur = valdb.kres.find({"headwords": hw}) + cur = valdb[corpus].find({"headwords": hw}) + print("N_results: " + str(cur.count())) frames = [] for ent in cur: # TODO: maybe filter by hw? @@ -277,11 +281,7 @@ def api_get_frames(): # return json.dumps([x.to_json() for x in frames]) - print("A") - print(frames[0].to_json()) ret_frames = RF(frames, None) - print("B") - print(ret_frames[0].to_json()) return prepare_frames(ret_frames) @@ -438,6 +438,7 @@ def prepare_db(): valdb[corpus].ensure_index([("functors", pymongo.ASCENDING)]) # create app_index (used in frontend, left side word index) + tmp_app_index = {c: {} for c in CORPORA} for corpus in CORPORA: res_hws = {} res_fns = {} @@ -467,11 +468,13 @@ def prepare_db(): for k, e in alphabetical.items(): alphabetical[k] = sorted(e, key=lambda x: x[0]) - app_index[corpus]["words"] = alphabetical + tmp_app_index[corpus]["words"] = alphabetical functors = [(k, e) for (k, e) in res_fns.items()] functors = sorted(functors, key=lambda x: x[0]) - app_index[corpus]["functors"] = functors + tmp_app_index[corpus]["functors"] = functors + + valdb.appindex.update({"dockey": "appindex"}, {"dockey": "appindex", "data": tmp_app_index}, upsert=True) # APP PREFLIGHT ---------------------^ @@ -506,9 +509,12 @@ if __name__ == "__main__": ) valdb = client.valdb - if config["prepare_db"]: + if bool(config["prepare_db"]): prepare_db() + # app index from db + app_index = (valdb.appindex.find_one({"dockey": "appindex"}))["data"] + # log.info("[*] Starting app.py with config:\n%s".format(config)) log.info("[*] Starting app.py with config:\n{}".format(config)) diff --git a/src/backend_flask/conf_files/dev_conf.yaml b/src/backend_flask/conf_files/dev_conf.yaml index 3753cc7..7dd4f53 100644 --- a/src/backend_flask/conf_files/dev_conf.yaml +++ b/src/backend_flask/conf_files/dev_conf.yaml @@ -3,5 +3,5 @@ debug: True port: 5004 host: localhost logfile: "/var/log/valency_backend.log" -prepare_db: True +prepare_db: False --- diff --git a/src/backend_flask/conf_files/dev_conf_init.yaml b/src/backend_flask/conf_files/dev_conf_init.yaml new file mode 100644 index 0000000..3753cc7 --- /dev/null +++ b/src/backend_flask/conf_files/dev_conf_init.yaml @@ -0,0 +1,7 @@ +--- +debug: True +port: 5004 +host: localhost +logfile: "/var/log/valency_backend.log" +prepare_db: True +--- diff --git a/src/frontend_vue/package-lock.json b/src/frontend_vue/package-lock.json index a2a9f2f..4416c52 100644 --- a/src/frontend_vue/package-lock.json +++ b/src/frontend_vue/package-lock.json @@ -116,7 +116,7 @@ "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" diff --git a/src/frontend_vue/src/components/MainDispl.vue b/src/frontend_vue/src/components/MainDispl.vue index 439cfe8..7135b09 100644 --- a/src/frontend_vue/src/components/MainDispl.vue +++ b/src/frontend_vue/src/components/MainDispl.vue @@ -121,7 +121,8 @@ export default { this.$http.get( this.$root.store.api_addr + "/api/functor-frames" + - "?functor=" + functor + "&rf=" + reduce_fun + "?functor=" + functor + "&rf=" + reduce_fun + + "&cor=" + component.$root.store.selCorpus ) .then(function (response) { component.$root.store.api_error = null @@ -150,7 +151,8 @@ export default { var component = this this.$http.get( this.$root.store.api_addr + "/api/frames" + - "?hw=" + hw + "&rf=" + reduce_fun + "?hw=" + hw + "&rf=" + reduce_fun + + "&cor=" + component.$root.store.selCorpus ) .then(function (response) { component.$root.store.api_error = null @@ -176,9 +178,11 @@ export default { var words = [] var hw_idx = -1 var tmp_hw = this.hw + /* Removes underscore for adjectives if (tmp_hw[tmp_hw.length - 1] === "_") { tmp_hw = tmp_hw.substr(0, tmp_hw.length - 1) } + */ for (var i in sentence) { words.push(sentence[i][1].word) if (sentence[i][1].lemma === tmp_hw && hw_idx == -1) {