Jelajahi Sumber

Add global environments to the Module class and add a method that return a dictionary

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@55601 15284696-431f-4ddb-bdfa-cd5b030d7da7
Pietro Zambelli 12 tahun lalu
induk
melakukan
f3612c9464
1 mengubah file dengan 16 tambahan dan 1 penghapusan
  1. 16 1
      lib/python/pygrass/modules/__init__.py

+ 16 - 1
lib/python/pygrass/modules/__init__.py

@@ -445,6 +445,7 @@ class Module(object):
         #
         self.run_ = True
         self.finish_ = True
+        self.env_ = None
         self.stdin_ = None
         self.stdin = None
         self.stdout_ = None
@@ -485,6 +486,9 @@ class Module(object):
         if 'stderr_' in kargs:
             self.outputs['stderr'].value = kargs['stderr_']
             del(kargs['stderr_'])
+        if 'env_' in kargs:
+            self.env_ = kargs['env_']
+            del(kargs['env_'])
         if 'finish_' in kargs:
             self.finish_ = kargs['finish_']
             del(kargs['finish_'])
@@ -564,6 +568,16 @@ class Module(object):
         flags = self.flags.__doc__
         return '\n'.join([head, params, _DOC['flag_head'], flags])
 
+    def get_dict(self):
+        dic = {}
+        dic['name'] = self.name
+        dic['inputs'] = [(k, v.value) for k, v in self.inputs.items()
+                         if v.value]
+        dic['outputs'] = [(k, v.value) for k, v in self.outputs.items()
+                          if v.value]
+        dic['flags'] = [flg for flg in self.flags if self.flags[flg].value]
+        return dic
+
     def make_cmd(self):
         args = [self.name, ]
         for par in self.params_list:
@@ -586,7 +600,8 @@ class Module(object):
         self.popen = subprocess.Popen(cmd,
                                       stdin=self.stdin_,
                                       stdout=self.stdout_,
-                                      stderr=self.stderr_)
+                                      stderr=self.stderr_,
+                                      env=self.env_)
         if self.finish_:
             self.popen.wait()