aboutsummaryrefslogtreecommitdiff
path: root/wqflask/utility
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask/utility')
-rw-r--r--wqflask/utility/helper_functions.py12
-rw-r--r--wqflask/utility/logger.py22
-rw-r--r--wqflask/utility/tools.py48
3 files changed, 64 insertions, 18 deletions
diff --git a/wqflask/utility/helper_functions.py b/wqflask/utility/helper_functions.py
index 149ee553..377f6b26 100644
--- a/wqflask/utility/helper_functions.py
+++ b/wqflask/utility/helper_functions.py
@@ -5,19 +5,21 @@ from base import data_set
from base.species import TheSpecies
from wqflask import user_manager
+import logging
+logger = logging.getLogger(__name__ )
def get_species_dataset_trait(self, start_vars):
#assert type(read_genotype) == type(bool()), "Expecting boolean value for read_genotype"
self.dataset = data_set.create_dataset(start_vars['dataset'])
- print("After creating dataset")
+ logger.debug("After creating dataset")
self.species = TheSpecies(dataset=self.dataset)
- print("After creating species")
+ logger.debug("After creating species")
self.this_trait = GeneralTrait(dataset=self.dataset,
name=start_vars['trait_id'],
cellid=None,
get_qtl_info=True)
- print("After creating trait")
+ logger.debug("After creating trait")
#if read_genotype:
#self.dataset.group.read_genotype_file()
@@ -27,7 +29,7 @@ def get_species_dataset_trait(self, start_vars):
def get_trait_db_obs(self, trait_db_list):
if isinstance(trait_db_list, basestring):
trait_db_list = trait_db_list.split(",")
-
+
self.trait_list = []
for trait in trait_db_list:
data, _separator, hmac = trait.rpartition(':')
@@ -38,4 +40,4 @@ def get_trait_db_obs(self, trait_db_list):
trait_ob = GeneralTrait(dataset=dataset_ob,
name=trait_name,
cellid=None)
- self.trait_list.append((trait_ob, dataset_ob)) \ No newline at end of file
+ self.trait_list.append((trait_ob, dataset_ob))
diff --git a/wqflask/utility/logger.py b/wqflask/utility/logger.py
index ddc0ea82..bacb0aa4 100644
--- a/wqflask/utility/logger.py
+++ b/wqflask/utility/logger.py
@@ -31,6 +31,7 @@ import string
from inspect import isfunction
from pprint import pformat as pf
from inspect import stack
+import datetime
from utility.tools import LOG_LEVEL, LOG_LEVEL_DEBUG, LOG_SQL, LOG_FORMAT
@@ -49,11 +50,20 @@ class GNLogger:
self.logger.setLevel(value)
def debug(self,*args):
+ """Call logging.debug for multiple args. Use (lazy) debugf and
+level=num to filter on LOG_LEVEL_DEBUG.
+
+ """
+ self.collect(self.logger.debug,*args)
+
+ def debug20(self,*args):
"""Call logging.debug for multiple args. Use level=num to filter on
LOG_LEVEL_DEBUG (NYI).
"""
- self.collect(self.logger.debug,*args)
+ if level <= LOG_LEVEL_DEBUG:
+ if self.logger.getEffectiveLevel() < 20:
+ self.collect(self.logger.debug,*args)
def info(self,*args):
"""Call logging.info for multiple args"""
@@ -66,7 +76,10 @@ LOG_LEVEL_DEBUG (NYI).
def error(self,*args):
"""Call logging.error for multiple args"""
- self.collect(self.logger.error,*args)
+ now = datetime.datetime.utcnow()
+ time_str = now.strftime('%H:%M:%S UTC %Y%m%d')
+ l = [time_str]+list(args)
+ self.collect(self.logger.error,*l)
def infof(self,*args):
"""Call logging.info for multiple args lazily"""
@@ -75,7 +88,10 @@ LOG_LEVEL_DEBUG (NYI).
self.collectf(self.logger.debug,*args)
def debugf(self,level=0,*args):
- """Call logging.debug for multiple args lazily"""
+ """Call logging.debug for multiple args lazily and handle
+ LOG_LEVEL_DEBUG correctly
+
+ """
# only evaluate function when logging
if level <= LOG_LEVEL_DEBUG:
if self.logger.getEffectiveLevel() < 20:
diff --git a/wqflask/utility/tools.py b/wqflask/utility/tools.py
index 907b0d6a..23d6fb62 100644
--- a/wqflask/utility/tools.py
+++ b/wqflask/utility/tools.py
@@ -3,6 +3,7 @@
import os
import sys
+import json
from wqflask import app
@@ -10,6 +11,8 @@ from wqflask import app
import logging
logger = logging.getLogger(__name__ )
+OVERRIDES = {}
+
def get_setting(command_id,guess=None):
"""Resolve a setting from the environment or the global settings in
app.config, with valid_path is a function checking whether the
@@ -45,13 +48,15 @@ def get_setting(command_id,guess=None):
logger.debug("Looking for "+command_id+"\n")
command = value(os.environ.get(command_id))
if command is None or command == "":
- # ---- Check whether setting exists in app
- command = value(app.config.get(command_id))
+ command = OVERRIDES.get(command_id)
if command is None:
- command = value(guess)
- if command is None or command == "":
- print command
- raise Exception(command_id+' setting unknown or faulty (update default_settings.py?).')
+ # ---- Check whether setting exists in app
+ command = value(app.config.get(command_id))
+ if command is None:
+ command = value(guess)
+ if command is None or command == "":
+ # print command
+ raise Exception(command_id+' setting unknown or faulty (update default_settings.py?).')
logger.debug("Set "+command_id+"="+str(command))
return command
@@ -93,6 +98,10 @@ def gemma_command(guess=None):
def plink_command(guess=None):
return valid_bin(get_setting("PLINK_COMMAND",guess))
+def flat_file_exists(subdir):
+ base = get_setting("GENENETWORK_FILES")
+ return valid_path(base+"/"+subdir)
+
def flat_files(subdir=None):
base = get_setting("GENENETWORK_FILES")
if subdir:
@@ -104,6 +113,7 @@ def assert_dir(dir):
raise Exception("ERROR: can not find directory "+dir)
return dir
+
def mk_dir(dir):
if not valid_path(dir):
os.makedirs(dir)
@@ -164,18 +174,20 @@ def show_settings():
log_level = getattr(logging, LOG_LEVEL.upper())
logging.basicConfig(level=log_level)
+ logger.info(OVERRIDES)
logger.info(BLUE+"Mr. Mojo Risin 2"+ENDC)
- print "runserver.py: ****** The webserver has the following configuration ******"
+ print "runserver.py: ****** Webserver configuration ******"
keylist = app.config.keys()
keylist.sort()
for k in keylist:
try:
- print("%s %s%s%s%s" % (k,BLUE,BOLD,get_setting(k),ENDC))
+ print("%s: %s%s%s%s" % (k,BLUE,BOLD,get_setting(k),ENDC))
except:
- print("%s %s%s%s%s" % (k,GREEN,BOLD,app.config[k],ENDC))
+ print("%s: %s%s%s%s" % (k,GREEN,BOLD,app.config[k],ENDC))
# Cached values
+HOME = get_setting('HOME')
WEBSERVER_MODE = get_setting('WEBSERVER_MODE')
GN_SERVER_URL = get_setting('GN_SERVER_URL')
SQL_URI = get_setting('SQL_URI')
@@ -187,9 +199,25 @@ LOG_BENCH = get_setting_bool('LOG_BENCH')
LOG_FORMAT = "%(message)s" # not yet in use
USE_REDIS = get_setting_bool('USE_REDIS')
USE_GN_SERVER = get_setting_bool('USE_GN_SERVER')
-GENENETWORK_FILES = get_setting_bool('GENENETWORK_FILES')
+
+GENENETWORK_FILES = get_setting('GENENETWORK_FILES')
PYLMM_COMMAND = pylmm_command()
GEMMA_COMMAND = gemma_command()
PLINK_COMMAND = plink_command()
TEMPDIR = tempdir()
+
+from six import string_types
+
+if os.environ.get('WQFLASK_OVERRIDES'):
+ jsonfn = get_setting('WQFLASK_OVERRIDES')
+ logger.error("WQFLASK_OVERRIDES: %s" % jsonfn)
+ with open(jsonfn) as data_file:
+ overrides = json.load(data_file)
+ for k in overrides:
+ cmd = overrides[k]
+ if isinstance(cmd, string_types):
+ OVERRIDES[k] = eval(cmd)
+ else:
+ OVERRIDES[k] = cmd
+ logger.debug(OVERRIDES)