From 968eb8c1d8703c3d5c84f2162eae365b930c008d Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Thu, 23 Jun 2016 05:33:20 +0000 Subject: Backend: moved methods into call module --- wqflask/base/data_set.py | 7 ++++--- wqflask/db/call.py | 38 ++++++++++++++++++++++++++++++++++++ wqflask/db/webqtlDatabaseFunction.py | 27 +++---------------------- 3 files changed, 45 insertions(+), 27 deletions(-) create mode 100644 wqflask/db/call.py (limited to 'wqflask') diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py index a7b6e402..02018dd3 100644 --- a/wqflask/base/data_set.py +++ b/wqflask/base/data_set.py @@ -114,9 +114,10 @@ def create_datasets_list(): for dataset_type in type_dict: query = "SELECT Name FROM {}".format(type_dict[dataset_type]) for result in g.db.execute(query).fetchall(): - #The query at the beginning of this function isn't necessary here, but still would - #rather just reuse it - #logger.debug("type: {}\tname: {}".format(dataset_type, result.Name)) + #The query at the beginning of this function isn't + #necessary here, but still would rather just reuse + #it logger.debug("type: {}\tname: + #{}".format(dataset_type, result.Name)) dataset = create_dataset(result.Name, dataset_type) datasets.append(dataset) diff --git a/wqflask/db/call.py b/wqflask/db/call.py new file mode 100644 index 00000000..6b15abb3 --- /dev/null +++ b/wqflask/db/call.py @@ -0,0 +1,38 @@ +# Module for calling the backend + +from flask import g + +# import MySQLdb +import string +import urllib2 +import json +# from base import webqtlConfig +from utility.tools import USE_GN_SERVER, LOG_SQL +from utility.benchmark import Bench + +from utility.logger import getLogger +logger = getLogger(__name__ ) + +from inspect import stack + +def fetchone(query): + """Return tuple containing one row by calling SQL directly + + """ + with Bench("SQL",LOG_SQL): + def helper(query): + res = g.db.execute(query) + return res.fetchone() + callername = stack()[1][3] + return logger.sql(callername, query, helper) + +def gn_server(path): + """Return JSON record by calling GN_SERVER + + """ + with Bench("GN_SERVER",LOG_SQL): + res = urllib2.urlopen("http://localhost:8880/"+path) + rest = res.read() + res2 = json.loads(rest) + logger.info(res2) + return res2 diff --git a/wqflask/db/webqtlDatabaseFunction.py b/wqflask/db/webqtlDatabaseFunction.py index e30929d2..bdc3eeb2 100644 --- a/wqflask/db/webqtlDatabaseFunction.py +++ b/wqflask/db/webqtlDatabaseFunction.py @@ -20,7 +20,6 @@ # # This module is used by GeneNetwork project (www.genenetwork.org) -from inspect import stack from flask import Flask, g import MySQLdb @@ -31,6 +30,8 @@ from base import webqtlConfig from utility.tools import USE_GN_SERVER, LOG_SQL from utility.benchmark import Bench +from db.call import fetchone, gn_server + from utility.logger import getLogger logger = getLogger(__name__ ) @@ -40,35 +41,13 @@ logger = getLogger(__name__ ) ########################################################################### def getCursor(): try: - logger.warning("Creating new MySQLdb cursor") + logger.warning("Creating new MySQLdb cursor (this method is OBSOLETE!)") con = MySQLdb.Connect(db=webqtlConfig.DB_NAME, host=webqtlConfig.MYSQL_SERVER, user=webqtlConfig.DB_USER, passwd=webqtlConfig.DB_PASSWD) cursor = con.cursor() return cursor except: return None -def fetchone(query): - """Return tuple containing one row by calling SQL directly - - """ - with Bench("SQL",LOG_SQL): - def helper(query): - res = g.db.execute(query) - return res.fetchone() - callername = stack()[1][3] - return logger.sql(callername, query, helper) - -def gn_server(path): - """Return JSON record by calling GN_SERVER - - """ - with Bench("GN_SERVER",LOG_SQL): - res = urllib2.urlopen("http://localhost:8880/"+path) - rest = res.read() - res2 = json.loads(rest) - logger.info(res2) - return res2 - def retrieve_species(group): """Get the species of a group (e.g. returns string "mouse" on "BXD" -- cgit v1.2.3