/usr/lib64/python2.6/site-packages/modulator
NameSizeModeActions
Templates/-0755rm
EXAMPLE.py13600644editdlrm
EXAMPLE.pyc10400644editdlrm
EXAMPLE.pyo10400644editdlrm
genmodule.py48240644editdlrm
genmodule.pyc53700644editdlrm
genmodule.pyo53700644editdlrm
modulator.py144410755editdlrm
modulator.pyc126060644editdlrm
modulator.pyo126060644editdlrm
README9800644editdlrm
ScrolledListbox.py14770644editdlrm
ScrolledListbox.pyc13890644editdlrm
ScrolledListbox.pyo13890644editdlrm
Tkextra.py74970755editdlrm
Tkextra.pyc68390644editdlrm
Tkextra.pyo68390644editdlrm
varsubst.py14460644editdlrm
varsubst.pyc23230644editdlrm
varsubst.pyo23230644editdlrm
Edit: /usr/lib64/python2.6/site-packages/modulator/varsubst.py (1446B)
# # Variable substitution. Variables are $delimited$ # import re error = 'varsubst.error' class Varsubst: def __init__(self, dict): self.dict = dict self.prog = re.compile('\$([a-zA-Z0-9_]*)\$') self.do_useindent = 0 def useindent(self, onoff): self.do_useindent = onoff def subst(self, s): rv = '' while 1: m = self.prog.search(s) if not m: return rv + s rv = rv + s[:m.start()] s = s[m.end():] if m.end() - m.start() == 2: # Escaped dollar rv = rv + '$' s = s[2:] continue name = m.group(1) if not self.dict.has_key(name): raise error, 'No such variable: '+name value = self.dict[name] if self.do_useindent and '\n' in value: value = self._modindent(value, rv) rv = rv + value def _modindent(self, value, old): lastnl = old.rfind('\n', 0) + 1 lastnl = len(old) - lastnl sub = '\n' + (' '*lastnl) return re.sub('\n', sub, value) def _test(): import sys import os sys.stderr.write('-- Copying stdin to stdout with environment map --\n') c = Varsubst(os.environ) c.useindent(1) d = sys.stdin.read() sys.stdout.write(c.subst(d)) sys.exit(1) if __name__ == '__main__': _test()