about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBonfaceKilz2022-02-24 09:15:43 +0300
committerBonfaceKilz2022-03-12 15:33:01 +0300
commit4fc948f38bdd81e8cd2afece3a7cc7cfca051bf0 (patch)
treee71aa2d0f7ba7b50c4ed88c540a658a948710e48
parent16276bd6a158d7190f50e6a83ad736b335cdc567 (diff)
downloadgenenetwork2-4fc948f38bdd81e8cd2afece3a7cc7cfca051bf0.tar.gz
metadata_edits.py: Use "create_dirs_if_not_exists" for creating dirs
-rw-r--r--wqflask/wqflask/metadata_edits.py73
1 files changed, 36 insertions, 37 deletions
diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py
index cf684bba..b93e9ec4 100644
--- a/wqflask/wqflask/metadata_edits.py
+++ b/wqflask/wqflask/metadata_edits.py
@@ -29,6 +29,7 @@ from gn3.authentication import DataRole
 from gn3.authentication import get_highest_user_access_role
 from gn3.authentication import get_user_membership
 from gn3.commands import run_cmd
+from gn3.csvcmp import create_dirs_if_not_exists
 from gn3.db import diff_from_dict
 from gn3.db import fetchall
 from gn3.db import fetchone
@@ -212,43 +213,41 @@ def display_probeset_metadata(name: str):
 @edit_access_required
 @login_required
 def update_phenotype(dataset_id: str, name: str):
-    with database_connection() as conn:
-        data_ = request.form.to_dict()
-        TMPDIR = current_app.config.get("TMPDIR")
-        author = ((g.user_session.record.get(b"user_id") or b"").decode("utf-8")
-                  or g.user_session.record.get("user_id") or "")
-        phenotype_id = str(data_.get('phenotype-id'))
-        if not (file_ := request.files.get("file")):
-            flash("No sample-data has been uploaded", "warning")
-        else:
-            if not os.path.exists(SAMPLE_DATADIR := os.path.join(TMPDIR, "sample-data")):
-                os.makedirs(SAMPLE_DATADIR)
-            if not os.path.exists(os.path.join(SAMPLE_DATADIR,
-                                               "diffs")):
-                os.makedirs(os.path.join(SAMPLE_DATADIR,
-                                         "diffs"))
-            if not os.path.exists(os.path.join(SAMPLE_DATADIR,
-                                               "updated")):
-                os.makedirs(os.path.join(SAMPLE_DATADIR,
-                                         "updated"))
-            current_time = str(datetime.datetime.now().isoformat())
-            _file_name = (f"{author}.{request.args.get('resource-id')}."
-                          f"{current_time}")
-            new_file_name = (os.path.join(TMPDIR,
-                                          f"sample-data/updated/{_file_name}.csv"))
-            uploaded_file_name = (os.path.join(
-                TMPDIR, "sample-data/updated/",
-                f"{_file_name}.csv.uploaded"))
-            file_.save(new_file_name)
-            with open(uploaded_file_name, "w") as f_:
-                f_.write(get_trait_csv_sample_data(
-                    conn=conn,
-                    trait_name=str(name),
-                    phenotype_id=str(phenotype_id)))
-            r = run_cmd(cmd=("csvdiff "
-                             f"'{uploaded_file_name}' '{new_file_name}' "
-                             "--format json"))
-            json_data = json.loads(r.get("output"))
+    conn = MySQLdb.Connect(db=current_app.config.get("DB_NAME"),
+                           user=current_app.config.get("DB_USER"),
+                           passwd=current_app.config.get("DB_PASS"),
+                           host=current_app.config.get("DB_HOST"))
+    data_ = request.form.to_dict()
+    TMPDIR = current_app.config.get("TMPDIR")
+    author = ((g.user_session.record.get(b"user_id") or b"").decode("utf-8")
+              or g.user_session.record.get("user_id") or "")
+    phenotype_id = str(data_.get('phenotype-id'))
+    if not (file_ := request.files.get("file")):
+        flash("No sample-data has been uploaded", "warning")
+    else:
+        create_dirs_if_not_exists([
+            SAMPLE_DATADIR := os.path.join(TMPDIR, "sample-data"),
+            DIFF_DATADIR := os.path.join(SAMPLE_DATADIR, "diffs"),
+            UPLOAD_DATADIR := os.path.join(SAMPLE_DATADIR, "updated")
+        ])
+        current_time = str(datetime.datetime.now().isoformat())
+        _file_name = (f"{author}.{request.args.get('resource-id')}."
+                      f"{current_time}")
+        new_file_name = (os.path.join(TMPDIR,
+                                      f"sample-data/updated/{_file_name}.csv"))
+        uploaded_file_name = (os.path.join(
+            TMPDIR, "sample-data/updated/",
+            f"{_file_name}.csv.uploaded"))
+        file_.save(new_file_name)
+        with open(uploaded_file_name, "w") as f_:
+            f_.write(get_trait_csv_sample_data(
+                conn=conn,
+                trait_name=str(name),
+                phenotype_id=str(phenotype_id)))
+        r = run_cmd(cmd=("csvdiff "
+                         f"'{uploaded_file_name}' '{new_file_name}' "
+                         "--format json"))
+        json_data = json.loads(r.get("output"))
 
             # Only consider values where |ε| < 0.001; otherwise, use the
             # old value in "Original".