from pcipywrap import * import os import sys class pcilib(pcipywrap): def __init__(s, *args): pcipywrap.__init__(s, *args) #load scripts scripts_dir = os.environ.get('PCILIB_SCRIPTS_DIR') if scripts_dir: scripts_dir_abs = os.path.abspath(scripts_dir) if not scripts_dir_abs in sys.path: sys.path.append(scripts_dir_abs) s.__scipts = dict() for script in os.listdir(scripts_dir_abs): if script.endswith('.py'): script_module = os.path.splitext(script)[0] __import__(script_module) s.__scipts[script_module] = sys.modules[script_module] def get_scripts_list(s): scripts = [] for script in s.__scipts: curr_script = dict() curr_script['name'] = script if 'description' in dir(s.__scipts[script]): curr_script['description'] = s.__scipts[script].description if 'run' in dir(s.__scipts[script]): curr_script['valid'] = True scripts.append(curr_script) return scripts def run_script(s, name, input_value): if not name in s.__scipts: raise Exception('Script ' + name +' has not loaded') return s.__scipts[name].run(s, input_value)