pcilib.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from pcipywrap import *
  2. import os
  3. import sys
  4. class pcilib(pcipywrap):
  5. def __init__(s, *args):
  6. pcipywrap.__init__(s, *args)
  7. #load scripts
  8. scripts_dir = os.environ.get('PCILIB_SCRIPTS_DIR')
  9. if scripts_dir:
  10. scripts_dir_abs = os.path.abspath(scripts_dir)
  11. if not scripts_dir_abs in sys.path:
  12. sys.path.append(scripts_dir_abs)
  13. s.__scipts = dict()
  14. for script in os.listdir(scripts_dir_abs):
  15. if script.endswith('.py'):
  16. script_module = os.path.splitext(script)[0]
  17. __import__(script_module)
  18. s.__scipts[script_module] = sys.modules[script_module]
  19. def get_scripts_list(s):
  20. scripts = []
  21. for script in s.__scipts:
  22. curr_script = dict()
  23. curr_script['name'] = script
  24. if 'description' in dir(s.__scipts[script]):
  25. curr_script['description'] = s.__scipts[script].description
  26. if 'run' in dir(s.__scipts[script]):
  27. curr_script['valid'] = True
  28. scripts.append(curr_script)
  29. return scripts
  30. def run_script(s, name, input_value):
  31. if not name in s.__scipts:
  32. raise Exception('Script ' + name +' has not loaded')
  33. return s.__scipts[name].run(s, input_value)