/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to pywrap/pcilib.py

  • Committer: Suren A. Chilingaryan
  • Date: 2016-03-02 22:36:19 UTC
  • mfrom: (346.1.35 pcitool)
  • Revision ID: csa@suren.me-20160302223619-r1zd62x6kwbyd321
Further improvements of Python scripting and web-interface API for register manipulations by Vasiliy Chernov

Show diffs side-by-side

added added

removed removed

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