about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-04-06 12:33:29 +0300
committerFrederick Muriuki Muriithi2023-04-06 12:33:29 +0300
commitee81db0981dba12bc306b52d3cfa583ff35d36ec (patch)
treecf5596791beea74cc47821458e46f472a31c4251
parent52340397fc263b5c629b53147fce4d3927a1e62f (diff)
downloadgenenetwork2-ee81db0981dba12bc306b52d3cfa583ff35d36ec.tar.gz
Remove use of deprecated `gn3.db_utils.database_connector` function.
Remove use of deprecated function and fix a myriad of bugs that rise
from its removal.

Issue: https://issues.genenetwork.org/issues/bugfix_coupling_current_app_and_db_utils
-rw-r--r--wqflask/wqflask/correlation/correlation_gn3_api.py6
-rw-r--r--wqflask/wqflask/correlation/rust_correlation.py19
-rw-r--r--wqflask/wqflask/partial_correlations_views.py6
3 files changed, 20 insertions, 11 deletions
diff --git a/wqflask/wqflask/correlation/correlation_gn3_api.py b/wqflask/wqflask/correlation/correlation_gn3_api.py
index 1af54867..b09f3ae2 100644
--- a/wqflask/wqflask/correlation/correlation_gn3_api.py
+++ b/wqflask/wqflask/correlation/correlation_gn3_api.py
@@ -3,6 +3,8 @@ import json
 import time
 from functools import wraps
 
+from flask import current_app
+
 from wqflask.correlation import correlation_functions
 from wqflask.correlation.pre_computes import fetch_precompute_results
 from wqflask.correlation.pre_computes import cache_compute_results
@@ -11,7 +13,7 @@ from base import data_set
 from base.trait import create_trait
 from base.trait import retrieve_sample_data
 
-from gn3.db_utils import database_connector
+from gn3.db_utils import database_connection
 from gn3.commands import run_sample_corr_cmd
 from gn3.computations.correlations import map_shared_keys_to_values
 from gn3.computations.correlations import compute_all_lit_correlation
@@ -146,7 +148,7 @@ def lit_for_trait_list(corr_results, this_dataset, this_trait):
     geneid_dict = {trait_name: geneid for (trait_name, geneid) in geneid_dict.items() if
                    trait_lists.get(trait_name)}
 
-    with database_connector() as conn:
+    with database_connection(current_app.config["SQL_URI"]) as conn:
         correlation_results = compute_all_lit_correlation(
             conn=conn, trait_lists=list(geneid_dict.items()),
             species=species, gene_id=this_trait_geneid)
diff --git a/wqflask/wqflask/correlation/rust_correlation.py b/wqflask/wqflask/correlation/rust_correlation.py
index 188278d8..cfec1ae3 100644
--- a/wqflask/wqflask/correlation/rust_correlation.py
+++ b/wqflask/wqflask/correlation/rust_correlation.py
@@ -1,6 +1,9 @@
 """module contains integration code for rust-gn3"""
 import json
 from functools import reduce
+
+from flask import current_app
+
 from utility.db_tools import mescape
 from utility.db_tools import create_in_clause
 from wqflask.correlation.correlation_functions\
@@ -15,7 +18,7 @@ from gn3.computations.correlations import compute_all_lit_correlation
 from gn3.computations.rust_correlation import run_correlation
 from gn3.computations.rust_correlation import get_sample_corr_data
 from gn3.computations.rust_correlation import parse_tissue_corr_data
-from gn3.db_utils import database_connector
+from gn3.db_utils import database_connection
 
 from wqflask.correlation.exceptions import WrongCorrelationType
 
@@ -26,7 +29,7 @@ def query_probes_metadata(dataset, trait_list):
     if not bool(trait_list) or dataset.type!="ProbeSet":
         return []
 
-    with database_connector() as conn:
+    with database_connection(current_app.config["SQL_URI"]) as conn:
         with conn.cursor() as cursor:
 
             query = """
@@ -96,7 +99,7 @@ def chunk_dataset(dataset, steps, name):
                   ProbeSetXRef.ProbeSetId = ProbeSet.Id
     """.format(name)
 
-    with database_connector() as conn:
+    with database_connection(current_app.config["SQL_URI"]) as conn:
         with conn.cursor() as curr:
             curr.execute(query)
             traits_name_dict = dict(curr.fetchall())
@@ -120,7 +123,7 @@ def compute_top_n_sample(start_vars, dataset, trait_list):
             sample_data=json.loads(samples_vals),
             dataset_samples=dataset.group.all_samples_ordered())
 
-        with database_connector() as conn:
+        with database_connection(current_app.config["SQL_URI"]) as conn:
             with conn.cursor() as curr:
                 curr.execute(
                     """
@@ -138,7 +141,7 @@ def compute_top_n_sample(start_vars, dataset, trait_list):
     if len(trait_list) == 0:
         return {}
 
-    with database_connector() as conn:
+    with database_connection(current_app.config["SQL_URI"]) as conn:
         with conn.cursor() as curr:
             # fetching strain data in bulk
             query = (
@@ -174,7 +177,7 @@ def compute_top_n_lit(corr_results, target_dataset, this_trait) -> dict:
     geneid_dict = {trait_name: geneid for (trait_name, geneid)
                    in geneid_dict.items() if
                    corr_results.get(trait_name)}
-    with database_connector() as conn:
+    with database_connection(current_app.config["SQL_URI"]) as conn:
         return reduce(
             lambda acc, corr: {**acc, **corr},
             compute_all_lit_correlation(
@@ -249,7 +252,7 @@ def __compute_sample_corr__(
 
 
     if target_dataset.type == "ProbeSet" and start_vars.get("use_cache") == "true":
-        with database_connector() as conn:
+        with database_connection(current_app.config["SQL_URI"]) as conn:
             file_path = fetch_text_file(target_dataset.name, conn)
             if file_path:
                 (sample_vals, target_data) = read_text_file(
@@ -336,7 +339,7 @@ def __compute_lit_corr__(
     (this_trait_geneid, geneid_dict, species) = do_lit_correlation(
         this_trait, target_dataset)
 
-    with database_connector() as conn:
+    with database_connection(current_app.config["SQL_URI"]) as conn:
         return reduce(
             lambda acc, lit: {**acc, **lit},
             compute_all_lit_correlation(
diff --git a/wqflask/wqflask/partial_correlations_views.py b/wqflask/wqflask/partial_correlations_views.py
index b3ebc4c5..a11d902c 100644
--- a/wqflask/wqflask/partial_correlations_views.py
+++ b/wqflask/wqflask/partial_correlations_views.py
@@ -348,7 +348,7 @@ def process_pcorrs_command_output(result):
 @app.route("/partial_correlations/<command_id>", methods=["GET"])
 def poll_partial_correlation_results(command_id):
     response = requests.get(
-        url=urljoin(GN_SERVER_URL, "async_commands/state/{command_id}"))
+        url=urljoin(GN_SERVER_URL, f"async_commands/state/{command_id}"))
 
     if response.status_code == 200:
         data = response.json()
@@ -366,3 +366,7 @@ def poll_partial_correlation_results(command_id):
         return render_template(
             "partial_correlations/pcorrs_poll_results.html",
             command_id = command_id)
+    return render_error(
+        "We messed up, and the computation failed due to a system "
+        "error.",
+        command_id)