[Checkins] SVN: zc.buildout/branches/encolpe-escape-command/src/zc/buildout/buildout.py I suppose that we will not support recursive substitution

Encolpe DEGOUTE encolpe.degoute at free.fr
Mon Feb 1 18:34:07 EST 2010


Log message for revision 108705:
  I suppose that we will not support recursive substitution

Changed:
  U   zc.buildout/branches/encolpe-escape-command/src/zc/buildout/buildout.py

-=-
Modified: zc.buildout/branches/encolpe-escape-command/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/branches/encolpe-escape-command/src/zc/buildout/buildout.py	2010-02-01 23:10:54 UTC (rev 108704)
+++ zc.buildout/branches/encolpe-escape-command/src/zc/buildout/buildout.py	2010-02-01 23:34:06 UTC (rev 108705)
@@ -1086,7 +1086,7 @@
 
     def get(self, option, default=None, seen=None):
         try:
-            return self._data[option]
+            return self._data[option].replace('$$', '$')
         except KeyError:
             pass
 
@@ -1112,7 +1112,7 @@
             seen.pop()
 
         self._data[option] = v
-        return v
+        return v.replace('$$', '$')
 
     _template_split = re.compile('([$]{[^}]*})').split
     _simple = re.compile('[-a-zA-Z0-9 ._]+$').match
@@ -1159,22 +1159,21 @@
 
     def __getitem__(self, key):
         try:
-            return self._data[key]
+            return self._data[key].replace('$$', '$')
         except KeyError:
             pass
 
         v = self.get(key)
         if v is None:
             raise MissingOption("Missing option: %s:%s" % (self.name, key))
-        return v
+        return v.replace('$$', '$')
 
     def __setitem__(self, option, value):
         if not isinstance(value, str):
             raise TypeError('Option values must be strings', value)
-        if '$' in value:
-            value = '$$'.join([chain.replace('$', '$$') for chain in value.split('$$')])
-        self._data[option] = value
 
+        self._data[option] = value.replace('$', '$$')
+
     def __delitem__(self, key):
         if key in self._raw:
             del self._raw[key]



More information about the checkins mailing list