-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #39 from pjotrp/master
Refactoring finding tools such as pylmm
- Loading branch information
Showing
3 changed files
with
55 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Tools/paths finder resolves external paths from settings and/or environment | ||
# variables | ||
# | ||
# Currently supported: | ||
# | ||
# PYLMM_PATH finds the root of the git repository of the pylmm_gn2 tool | ||
|
||
import os | ||
import sys | ||
from wqflask import app | ||
|
||
def get_setting(id,default,guess,get_valid_path): | ||
""" | ||
Resolve a setting from the environment or the global settings in app.config | ||
""" | ||
# ---- Check whether environment exists | ||
path = get_valid_path(os.environ.get(id)) | ||
# ---- Check whether setting exists | ||
setting = app.config.get(id) | ||
if not path: | ||
path = get_valid_path(setting) | ||
# ---- Check whether default exists | ||
if not path: | ||
path = get_valid_path(default) | ||
# ---- Guess directory | ||
if not path: | ||
if not setting: | ||
setting = guess | ||
path = get_valid_path(guess) | ||
if not path: | ||
raise Exception(id+' '+setting+' path unknown or faulty (update settings.py?). '+id+' should point to the root of the git repository') | ||
|
||
return path | ||
|
||
def pylmm_command(default=None): | ||
""" | ||
Return the path to the repository and the python command to call | ||
""" | ||
def get_valid_path(path): | ||
"""Test for a valid repository""" | ||
if path: | ||
sys.stderr.write("Trying PYLMM_PATH in "+path+"\n") | ||
if path and os.path.isfile(path+'/pylmm_gn2/lmm.py'): | ||
return path | ||
else: | ||
None | ||
|
||
guess = os.environ.get('HOME')+'/pylmm_gn2' | ||
path = get_setting('PYLMM_PATH',default,guess,get_valid_path) | ||
pylmm_command = 'python '+path+'/pylmm_gn2/lmm.py' | ||
return path,pylmm_command |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters