EnvConfig.Variable.EnvExpander Class Reference
Inheritance diagram for EnvConfig.Variable.EnvExpander:
Collaboration diagram for EnvConfig.Variable.EnvExpander:

Public Member Functions

def __init__ (self, env)
 
def isTarget (self, variable)
 
def process (self, variable, value)
 
- Public Member Functions inherited from EnvConfig.Variable.VariableProcessor
def __init__ (self, env)
 
def isTarget (self, variable)
 
def process (self, variable, value)
 
def __call__ (self, variable, value)
 

Private Member Functions

def _repl (self, value)
 

Private Attributes

 _exp
 

Detailed Description

Variable processor to expand the reference to environment variables.

Definition at line 63 of file Variable.py.

Constructor & Destructor Documentation

def EnvConfig.Variable.EnvExpander.__init__ (   self,
  env 
)

Definition at line 67 of file Variable.py.

67  def __init__(self, env):
68  super(EnvExpander, self).__init__(env)
69  self._exp = re.compile(r"\$([A-Za-z_][A-Za-z0-9_]*)|\$\(([A-Za-z_][A-Za-z0-9_]*)\)|\$\{([A-Za-z_][A-Za-z0-9_]*)\}|\$\{(\.)\}")
70 

Member Function Documentation

def EnvConfig.Variable.EnvExpander._repl (   self,
  value 
)
private

Definition at line 75 of file Variable.py.

75  def _repl(self, value):
76  m = self._exp.search(value)
77  if m:
78  try:
79  value = (value[:m.start()]
80  + str(self._env[filter(None, m.groups())[0]])
81  + value[m.end():])
82  except KeyError, k:
83  logging.debug('KeyError: %s unknown while expanding %s', k, value)
84  return value
85  return self._repl(value)
86  else:
87  return value
88 
def _repl(self, value)
Definition: Variable.py:75
def EnvConfig.Variable.EnvExpander.isTarget (   self,
  variable 
)

Definition at line 71 of file Variable.py.

71  def isTarget(self, variable):
72  return (super(EnvExpander, self).isTarget(variable)
73  and variable.expandVars)
74 
def isTarget(self, variable)
Definition: Variable.py:71
def EnvConfig.Variable.EnvExpander.process (   self,
  variable,
  value 
)

Definition at line 89 of file Variable.py.

89  def process(self, variable, value):
90  if isinstance(value, str):
91  value = self._repl(value)
92  else:
93  # expand only in the elements that are new
94  old_values = set(variable.val)
95  value = map(lambda v: v if v in old_values else self._repl(v), value)
96  return value
97 
struct GAUDI_API map
Parametrisation class for map-like implementation.
def _repl(self, value)
Definition: Variable.py:75
def process(self, variable, value)
Definition: Variable.py:89

Member Data Documentation

EnvConfig.Variable.EnvExpander._exp
private

Definition at line 69 of file Variable.py.


The documentation for this class was generated from the following file: