about summary refs log tree commit diff
path: root/wqflask/base/data_set.py
diff options
context:
space:
mode:
authorzsloan2020-04-27 14:00:34 -0500
committerzsloan2020-04-27 14:00:34 -0500
commit75ecdb25c7a598f0f254f4f53529b657736aaa49 (patch)
treec2cf0442113fb5de7a190e367874c02909510d86 /wqflask/base/data_set.py
parentc0909b461effecb8051020a4f186a40b8867b574 (diff)
downloadgenenetwork2-75ecdb25c7a598f0f254f4f53529b657736aaa49.tar.gz
Made change that should allow dataset structure to be loaded from Redis instead of the JSON file without breaking things
Diffstat (limited to 'wqflask/base/data_set.py')
-rw-r--r--wqflask/base/data_set.py41
1 files changed, 24 insertions, 17 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index 1f99df49..fd1dff5c 100644
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -93,22 +93,26 @@ Publish or ProbeSet. E.g.
 
         """
         self.datasets = {}
-        data = json.loads(requests.get(GN2_BASE_URL + "/api/v_pre1/gen_dropdown").content)
-        #data = gen_menu.gen_dropdown_json()
-
-
-        for species in data['datasets']:
-            for group in data['datasets'][species]:
-                for dataset_type in data['datasets'][species][group]:
-                    for dataset in data['datasets'][species][group][dataset_type]:
-                        short_dataset_name = dataset[1]
-                        if dataset_type == "Phenotypes":
-                            new_type = "Publish"
-                        elif dataset_type == "Genotypes":
-                            new_type = "Geno"
-                        else:
-                            new_type = "ProbeSet"
-                        self.datasets[short_dataset_name] = new_type
+
+        data = Redis.get("dataset_structure")
+        if data:
+            self.datasets = json.loads(data)
+        else: #ZS: I don't think this should ever run unless Redis is emptied
+            data = json.loads(requests.get(GN2_BASE_URL + "/api/v_pre1/gen_dropdown").content)
+            for species in data['datasets']:
+                for group in data['datasets'][species]:
+                    for dataset_type in data['datasets'][species][group]:
+                        for dataset in data['datasets'][species][group][dataset_type]:
+                            short_dataset_name = dataset[1]
+                            if dataset_type == "Phenotypes":
+                                new_type = "Publish"
+                            elif dataset_type == "Genotypes":
+                                new_type = "Geno"
+                            else:
+                                new_type = "ProbeSet"
+                            self.datasets[short_dataset_name] = new_type
+
+            Redis.set("dataset_structure", json.dumps(self.datasets))
 
         # Set LOG_LEVEL_DEBUG=5 to see the following:
         logger.debugf(5, "datasets",self.datasets)
@@ -127,6 +131,7 @@ Publish or ProbeSet. E.g.
             results = g.db.execute(geno_query).fetchall()
             if len(results):
                 self.datasets[name] = "ProbeSet"
+                Redis.set("dataset_structure", json.dumps(self.datasets))
                 return self.datasets[name]
 
             group_name = name.replace("Publish", "")
@@ -140,6 +145,7 @@ Publish or ProbeSet. E.g.
             results = g.db.execute(pheno_query).fetchall()
             if len(results):
                 self.datasets[name] = "Publish"
+                Redis.set("dataset_structure", json.dumps(self.datasets))
                 return self.datasets[name]
 
             #ZS: For when there isn't an InfoFiles ID; not sure if this and the preceding query are both necessary
@@ -151,6 +157,7 @@ Publish or ProbeSet. E.g.
             results = g.db.execute(other_pheno_query).fetchall()
             if len(results):
                 self.datasets[name] = "Publish"
+                Redis.set("dataset_structure", json.dumps(self.datasets))
                 return self.datasets[name]
 
             geno_query =    """
@@ -166,11 +173,11 @@ Publish or ProbeSet. E.g.
             results = g.db.execute(geno_query).fetchall()
             if len(results):
                 self.datasets[name] = "Geno"
+                Redis.set("dataset_structure", json.dumps(self.datasets))
                 return self.datasets[name]
 
             #ZS: It shouldn't ever reach this
             return None
-
         else:
             return self.datasets[name]