Gaudi Framework, version v23r8

Home   Generated: Fri May 31 2013
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Public Attributes | Private Attributes | List of all members
GaudiTest.TemporaryEnvironment Class Reference

Utility Classes. More...

Public Member Functions

def __init__
 
def __setitem__
 
def __getitem__
 
def __delitem__
 
def keys
 
def items
 
def __contains__
 
def restore
 
def __del__
 
def gen_script
 

Public Attributes

 old_values
 
 env
 

Private Attributes

 _keep_same
 

Detailed Description

Utility Classes.

Class to changes the environment temporarily.

Definition at line 46 of file GaudiTest.py.

Constructor & Destructor Documentation

def GaudiTest.TemporaryEnvironment.__init__ (   self,
  orig = os.environ,
  keep_same = False 
)
Create a temporary environment on top of the one specified
(it can be another TemporaryEnvironment instance).

Definition at line 50 of file GaudiTest.py.

50 
51  def __init__(self, orig = os.environ, keep_same = False):
52  """
53  Create a temporary environment on top of the one specified
54  (it can be another TemporaryEnvironment instance).
55  """
56  #print "New environment"
57  self.old_values = {}
58  self.env = orig
59  self._keep_same = keep_same
def GaudiTest.TemporaryEnvironment.__del__ (   self)
Revert the changes on destruction.

Definition at line 121 of file GaudiTest.py.

122  def __del__(self):
123  """
124  Revert the changes on destruction.
125  """
126  #print "Restoring the environment"
127  self.restore()

Member Function Documentation

def GaudiTest.TemporaryEnvironment.__contains__ (   self,
  key 
)
Operator 'in'.
Needed to provide the same interface as os.environ.

Definition at line 103 of file GaudiTest.py.

104  def __contains__(self,key):
105  """
106  Operator 'in'.
107  Needed to provide the same interface as os.environ.
108  """
109  return key in self.env
def GaudiTest.TemporaryEnvironment.__delitem__ (   self,
  key 
)
Unset an environment variable.
Needed to provide the same interface as os.environ.

Definition at line 79 of file GaudiTest.py.

79 
80  def __delitem__(self,key):
81  """
82  Unset an environment variable.
83  Needed to provide the same interface as os.environ.
84  """
85  if key not in self.env :
86  raise KeyError(key)
87  self.old_values[key] = self.env[key]
88  del self.env[key]
def GaudiTest.TemporaryEnvironment.__getitem__ (   self,
  key 
)
Get an environment variable.
Needed to provide the same interface as os.environ.

Definition at line 72 of file GaudiTest.py.

72 
73  def __getitem__(self,key):
74  """
75  Get an environment variable.
76  Needed to provide the same interface as os.environ.
77  """
78  return self.env[key]
def GaudiTest.TemporaryEnvironment.__setitem__ (   self,
  key,
  value 
)
Set an environment variable recording the previous value.

Definition at line 60 of file GaudiTest.py.

60 
61  def __setitem__(self,key,value):
62  """
63  Set an environment variable recording the previous value.
64  """
65  if key not in self.old_values :
66  if key in self.env :
67  if not self._keep_same or self.env[key] != value:
68  self.old_values[key] = self.env[key]
69  else:
70  self.old_values[key] = None
71  self.env[key] = value
def GaudiTest.TemporaryEnvironment.gen_script (   self,
  shell_type 
)
Generate a shell script to reproduce the changes in the environment.

Definition at line 128 of file GaudiTest.py.

129  def gen_script(self,shell_type):
130  """
131  Generate a shell script to reproduce the changes in the environment.
132  """
133  shells = [ 'csh', 'sh', 'bat' ]
134  if shell_type not in shells:
135  raise RuntimeError("Shell type '%s' unknown. Available: %s"%(shell_type,shells))
136  out = ""
137  for key,value in self.old_values.items():
138  if key not in self.env:
139  # unset variable
140  if shell_type == 'csh':
141  out += 'unsetenv %s\n'%key
142  elif shell_type == 'sh':
143  out += 'unset %s\n'%key
144  elif shell_type == 'bat':
145  out += 'set %s=\n'%key
146  else:
147  # set variable
148  if shell_type == 'csh':
149  out += 'setenv %s "%s"\n'%(key,self.env[key])
150  elif shell_type == 'sh':
151  out += 'export %s="%s"\n'%(key,self.env[key])
152  elif shell_type == 'bat':
153  out += 'set %s=%s\n'%(key,self.env[key])
154  return out
def GaudiTest.TemporaryEnvironment.items (   self)
Return the list of (name,value) pairs for the defined environment variables.
Needed to provide the same interface as os.environ.

Definition at line 96 of file GaudiTest.py.

96 
97  def items(self):
98  """
99  Return the list of (name,value) pairs for the defined environment variables.
100  Needed to provide the same interface as os.environ.
101  """
102  return self.env.items()
def GaudiTest.TemporaryEnvironment.keys (   self)
Return the list of defined environment variables.
Needed to provide the same interface as os.environ.

Definition at line 89 of file GaudiTest.py.

89 
90  def keys(self):
91  """
92  Return the list of defined environment variables.
93  Needed to provide the same interface as os.environ.
94  """
95  return self.env.keys()
def GaudiTest.TemporaryEnvironment.restore (   self)
Revert all the changes done to the orignal environment.

Definition at line 110 of file GaudiTest.py.

111  def restore(self):
112  """
113  Revert all the changes done to the orignal environment.
114  """
115  for key,value in self.old_values.items():
116  if value is None:
117  del self.env[key]
118  else:
119  self.env[key] = value
120  self.old_values = {}

Member Data Documentation

GaudiTest.TemporaryEnvironment._keep_same
private

Definition at line 58 of file GaudiTest.py.

GaudiTest.TemporaryEnvironment.env

Definition at line 57 of file GaudiTest.py.

GaudiTest.TemporaryEnvironment.old_values

Definition at line 56 of file GaudiTest.py.


The documentation for this class was generated from the following file:
Generated at Fri May 31 2013 15:09:28 for Gaudi Framework, version v23r8 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004