aboutsummaryrefslogtreecommitdiff
path: root/wqflask/db
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask/db')
-rw-r--r--wqflask/db/call.py29
-rw-r--r--wqflask/db/gn_server.py3
-rw-r--r--wqflask/db/webqtlDatabaseFunction.py17
3 files changed, 27 insertions, 22 deletions
diff --git a/wqflask/db/call.py b/wqflask/db/call.py
index 1a1b3adc..1fe0772b 100644
--- a/wqflask/db/call.py
+++ b/wqflask/db/call.py
@@ -3,16 +3,22 @@
from flask import g
import string
-import urllib2
+try: # Python2 support
+ import urllib.request
+ import urllib.error
+ import urllib.parse
+except:
+ import urllib2
import json
from utility.tools import USE_GN_SERVER, LOG_SQL, GN_SERVER_URL
from utility.benchmark import Bench
from utility.logger import getLogger
-logger = getLogger(__name__ )
+logger = getLogger(__name__)
# from inspect import stack
+
def fetch1(query, path=None, func=None):
"""Fetch one result as a Tuple using either a SQL query or the URI
path to GN_SERVER (when USE_GN_SERVER is True). Apply func to
@@ -26,40 +32,47 @@ GN_SERVER result when set (which should return a Tuple)
else:
res2 = result,
if LOG_SQL:
- logger.debug("Replaced SQL call",query)
- logger.debug(path,res2)
+ logger.debug("Replaced SQL call", query)
+ logger.debug(path, res2)
return res2
else:
return fetchone(query)
+
def fetchone(query):
"""Return tuple containing one row by calling SQL directly (the
original fetchone, but with logging)
"""
- with Bench("SQL",LOG_SQL):
+ with Bench("SQL", LOG_SQL):
def helper(query):
res = g.db.execute(query)
return res.fetchone()
return logger.sql(query, helper)
+
def fetchall(query):
"""Return row iterator by calling SQL directly (the
original fetchall, but with logging)
"""
- with Bench("SQL",LOG_SQL):
+ with Bench("SQL", LOG_SQL):
def helper(query):
res = g.db.execute(query)
return res.fetchall()
return logger.sql(query, helper)
+
def gn_server(path):
"""Return JSON record by calling GN_SERVER
"""
- with Bench("GN_SERVER",LOG_SQL):
- res = urllib2.urlopen(GN_SERVER_URL+path)
+ with Bench("GN_SERVER", LOG_SQL):
+ res = ()
+ try:
+ res = urllib.request.urlopen(GN_SERVER_URL + path)
+ except:
+ res = urllib2.urlopen(GN_SERVER_URL + path)
rest = res.read()
res2 = json.loads(rest)
logger.debug(res2)
diff --git a/wqflask/db/gn_server.py b/wqflask/db/gn_server.py
index da224112..f9b01658 100644
--- a/wqflask/db/gn_server.py
+++ b/wqflask/db/gn_server.py
@@ -3,7 +3,8 @@
from db.call import gn_server
from utility.logger import getLogger
-logger = getLogger(__name__ )
+logger = getLogger(__name__)
+
def menu_main():
return gn_server("/int/menu/main.json")
diff --git a/wqflask/db/webqtlDatabaseFunction.py b/wqflask/db/webqtlDatabaseFunction.py
index 8a9dc79d..9ec650a4 100644
--- a/wqflask/db/webqtlDatabaseFunction.py
+++ b/wqflask/db/webqtlDatabaseFunction.py
@@ -21,27 +21,18 @@
# This module is used by GeneNetwork project (www.genenetwork.org)
from db.call import fetch1
-from utility.tools import USE_GN_SERVER
-from utility.logger import getLogger
-logger = getLogger(__name__ )
-
-###########################################################################
-#output: cursor instance
-#function: connect to database and return cursor instance
-###########################################################################
def retrieve_species(group):
"""Get the species of a group (e.g. returns string "mouse" on "BXD"
"""
- result = fetch1("select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % (group),"/cross/"+group+".json",lambda r: (r["species"],))[0]
- logger.debug("retrieve_species result:",result)
+ result = fetch1("select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % (
+ group), "/cross/" + group + ".json", lambda r: (r["species"],))[0]
return result
def retrieve_species_id(group):
-
- result = fetch1("select SpeciesId from InbredSet where Name = '%s'" % (group),"/cross/"+group+".json",lambda r: (r["species_id"],))[0]
- logger.debug("retrieve_species_id result:",result)
+ result = fetch1("select SpeciesId from InbredSet where Name = '%s'" % (
+ group), "/cross/" + group + ".json", lambda r: (r["species_id"],))[0]
return result