aboutsummaryrefslogtreecommitdiff
path: root/wqflask/base
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-06-22 12:12:26 +0300
committerFrederick Muriuki Muriithi2023-06-22 12:12:26 +0300
commit7d669eed50a0e39eaa2b4a4769e5d9bbefdb997a (patch)
tree585943056bd7df17e312da3a13a2d87ac12d259c /wqflask/base
parent490b0bf8cc5891a23c8850185d21987b5476ba4f (diff)
downloadgenenetwork2-decouple_tools_and_wqflask_app.tar.gz
Fetch configs from app object not modulesdecouple_tools_and_wqflask_app
Diffstat (limited to 'wqflask/base')
-rw-r--r--wqflask/base/data_set/__init__.py5
-rw-r--r--wqflask/base/data_set/datasetgroup.py25
-rw-r--r--wqflask/base/data_set/datasettype.py6
-rw-r--r--wqflask/base/data_set/utils.py11
-rw-r--r--wqflask/base/trait.py8
-rw-r--r--wqflask/base/webqtlCaseData.py5
6 files changed, 30 insertions, 30 deletions
diff --git a/wqflask/base/data_set/__init__.py b/wqflask/base/data_set/__init__.py
index e49c6a93..27955f8a 100644
--- a/wqflask/base/data_set/__init__.py
+++ b/wqflask/base/data_set/__init__.py
@@ -6,11 +6,12 @@ import pickle as pickle
# 3rd-party imports
from redis import Redis
+from flask import current_app as app
# local imports
from .dataset import DataSet
from base import webqtlConfig
-from utility.tools import USE_REDIS
+from utility.tools import get_setting_bool
from .datasettype import DatasetType
from .tempdataset import TempDataSet
from .datasetgroup import DatasetGroup
@@ -113,7 +114,7 @@ def datasets(group_name, this_group=None, redis_conn=Redis()):
dataset_menu.append(dict(tissue=tissue_name,
datasets=[(dataset, dataset_short)]))
- if USE_REDIS:
+ if get_setting_bool(app, "USE_REDIS"):
redis_conn.set(key, pickle.dumps(dataset_menu, pickle.HIGHEST_PROTOCOL))
redis_conn.expire(key, 60 * 5)
diff --git a/wqflask/base/data_set/datasetgroup.py b/wqflask/base/data_set/datasetgroup.py
index 72577f38..10556dbf 100644
--- a/wqflask/base/data_set/datasetgroup.py
+++ b/wqflask/base/data_set/datasetgroup.py
@@ -3,6 +3,8 @@
import os
import json
+from flask import current_app as app
+
from base import webqtlConfig
from .markers import Markers, HumanMarkers
@@ -13,9 +15,10 @@ from maintenance import get_group_samplelists
from wqflask.database import database_connection
from utility.tools import (
locate,
- USE_REDIS,
flat_files,
+ get_setting,
flat_file_exists,
+ get_setting_bool,
locate_ignore_error)
class DatasetGroup:
@@ -87,8 +90,8 @@ class DatasetGroup:
def get_markers(self):
def check_plink_gemma():
- if flat_file_exists("mapping"):
- MAPPING_PATH = flat_files("mapping") + "/"
+ if flat_file_exists(app, "mapping"):
+ MAPPING_PATH = flat_files(app, "mapping") + "/"
if os.path.isfile(MAPPING_PATH + self.name + ".bed"):
return True
return False
@@ -117,7 +120,7 @@ class DatasetGroup:
def get_study_samplelists(self):
study_sample_file = locate_ignore_error(
- self.name + ".json", 'study_sample_lists')
+ app, self.name + ".json", 'study_sample_lists')
try:
f = open(study_sample_file)
except:
@@ -126,7 +129,7 @@ class DatasetGroup:
return study_samples
def get_genofiles(self):
- jsonfile = "%s/%s.json" % (webqtlConfig.GENODIR, self.name)
+ jsonfile = "%s/%s.json" % (get_setting(app, 'GENODIR'), self.name)
try:
f = open(jsonfile)
except:
@@ -137,20 +140,20 @@ class DatasetGroup:
def get_samplelist(self, redis_conn):
result = None
key = "samplelist:v3:" + self.name
- if USE_REDIS:
+ if get_setting_bool(app, "USE_REDIS"):
result = redis_conn.get(key)
if result is not None:
self.samplelist = json.loads(result)
else:
- genotype_fn = locate_ignore_error(self.name + ".geno", 'genotype')
+ genotype_fn = locate_ignore_error(app, self.name + ".geno", 'genotype')
if genotype_fn:
self.samplelist = get_group_samplelists.get_samplelist(
"geno", genotype_fn)
else:
self.samplelist = None
- if USE_REDIS:
+ if get_setting_bool(app, "USE_REDIS"):
redis_conn.set(key, json.dumps(self.samplelist))
redis_conn.expire(key, 60 * 5)
@@ -169,11 +172,11 @@ class DatasetGroup:
if self.genofile:
if "RData" in self.genofile: # ZS: This is a temporary fix; I need to change the way the JSON files that point to multiple genotype files are structured to point to other file types like RData
full_filename = str(
- locate(self.genofile.split(".")[0] + ".geno", 'genotype'))
+ locate(app, self.genofile.split(".")[0] + ".geno", 'genotype'))
else:
- full_filename = str(locate(self.genofile, 'genotype'))
+ full_filename = str(locate(app, self.genofile, 'genotype'))
else:
- full_filename = str(locate(self.name + '.geno', 'genotype'))
+ full_filename = str(locate(app, self.name + '.geno', 'genotype'))
genotype_1 = gen_geno_ob.genotype(full_filename)
if genotype_1.type == "group" and self.parlist:
diff --git a/wqflask/base/data_set/datasettype.py b/wqflask/base/data_set/datasettype.py
index 05f0f564..c8b78a43 100644
--- a/wqflask/base/data_set/datasettype.py
+++ b/wqflask/base/data_set/datasettype.py
@@ -6,9 +6,9 @@ from typing import Optional, Dict
from redis import Redis
+from flask import current_app as app
-
-from utility.tools import GN2_BASE_URL
+from utility.tools import get_setting
from wqflask.database import database_connection
@@ -41,7 +41,7 @@ class DatasetType:
# emptied
try:
data = json.loads(requests.get(
- GN2_BASE_URL + "/api/v_pre1/gen_dropdown",
+ get_setting(app, "GN2_BASE_URL") + "/api/v_pre1/gen_dropdown",
timeout=5).content)
for _species in data['datasets']:
for group in data['datasets'][_species]:
diff --git a/wqflask/base/data_set/utils.py b/wqflask/base/data_set/utils.py
index 703fee04..bb17a6c7 100644
--- a/wqflask/base/data_set/utils.py
+++ b/wqflask/base/data_set/utils.py
@@ -6,9 +6,10 @@ import json
import hashlib
from typing import List
+from flask import current_app as app
-from utility.tools import SQL_URI
-from base.webqtlConfig import TMPDIR
+
+from utility.tools import get_setting
from wqflask.database import parse_db_url, database_connection
def geno_mrna_confidentiality(ob):
@@ -27,7 +28,7 @@ def query_table_timestamp(dataset_type: str):
# computation data and actions
with database_connection() as conn, conn.cursor() as cursor:
- fetch_db_name = parse_db_url(SQL_URI)
+ fetch_db_name = parse_db_url(get_setting(app, "SQL_URI"))
cursor.execute(
"SELECT UPDATE_TIME FROM "
"information_schema.tables "
@@ -57,7 +58,7 @@ def cache_dataset_results(dataset_name: str, dataset_type: str, samplelist: List
samplelist_as_str = ",".join(samplelist)
file_name = generate_hash_file(dataset_name, dataset_type, table_timestamp, samplelist_as_str)
- file_path = os.path.join(TMPDIR, f"{file_name}.json")
+ file_path = os.path.join(get_setting(app, "TMPDIR"), f"{file_name}.json")
with open(file_path, "w") as file_handler:
json.dump(query_results, file_handler)
@@ -70,7 +71,7 @@ def fetch_cached_results(dataset_name: str, dataset_type: str, samplelist: List)
samplelist_as_str = ",".join(samplelist)
file_name = generate_hash_file(dataset_name, dataset_type, table_timestamp, samplelist_as_str)
- file_path = os.path.join(TMPDIR, f"{file_name}.json")
+ file_path = os.path.join(get_setting(app, "TMPDIR"), f"{file_name}.json")
try:
with open(file_path, "r") as file_handler:
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 37085448..21b2a716 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -7,7 +7,7 @@ from base import webqtlConfig
from base.webqtlCaseData import webqtlCaseData
from base.data_set import create_dataset
from utility.authentication_tools import check_resource_availability
-from utility.tools import GN2_BASE_URL
+from utility.tools import get_setting
from utility.redis_tools import get_redis_conn, get_resource_id
from flask import g, request, url_for
@@ -173,11 +173,11 @@ class GeneralTrait:
alias = 'Not available'
if self.symbol:
human_response = requests.get(
- GN2_BASE_URL + "gn3/gene/aliases/" + self.symbol.upper())
+ get_setting(app, "GN2_BASE_URL") + "gn3/gene/aliases/" + self.symbol.upper())
mouse_response = requests.get(
- GN2_BASE_URL + "gn3/gene/aliases/" + self.symbol.capitalize())
+ get_setting(app, "GN2_BASE_URL") + "gn3/gene/aliases/" + self.symbol.capitalize())
other_response = requests.get(
- GN2_BASE_URL + "gn3/gene/aliases/" + self.symbol.lower())
+ get_setting(app, "GN2_BASE_URL") + "gn3/gene/aliases/" + self.symbol.lower())
if human_response and mouse_response and other_response:
alias_list = json.loads(human_response.content) + json.loads(
diff --git a/wqflask/base/webqtlCaseData.py b/wqflask/base/webqtlCaseData.py
index dd6fad04..d144a342 100644
--- a/wqflask/base/webqtlCaseData.py
+++ b/wqflask/base/webqtlCaseData.py
@@ -21,11 +21,6 @@
# Created by GeneNetwork Core Team 2010/08/10
-import utility.tools
-
-utility.tools.show_settings()
-
-
class webqtlCaseData:
"""one case data in one trait"""