| Index: third_party/buildbot_7_12/buildbot/stringTemplate.py
|
| diff --git a/third_party/buildbot_7_12/buildbot/stringTemplate.py b/third_party/buildbot_7_12/buildbot/stringTemplate.py
|
| deleted file mode 100644
|
| index 18198a5d9737505a8a2c41deeb6ab09d87c3bf4b..0000000000000000000000000000000000000000
|
| --- a/third_party/buildbot_7_12/buildbot/stringTemplate.py
|
| +++ /dev/null
|
| @@ -1,129 +0,0 @@
|
| -"""A copy of the string Template class from python 2.4, included
|
| -for compatibility with python 2.3.
|
| -"""
|
| -
|
| -import re as _re
|
| -
|
| -class _multimap:
|
| - """Helper class for combining multiple mappings.
|
| -
|
| - Used by .{safe_,}substitute() to combine the mapping and keyword
|
| - arguments.
|
| - """
|
| - def __init__(self, primary, secondary):
|
| - self._primary = primary
|
| - self._secondary = secondary
|
| -
|
| - def __getitem__(self, key):
|
| - try:
|
| - return self._primary[key]
|
| - except KeyError:
|
| - return self._secondary[key]
|
| -
|
| -
|
| -class _TemplateMetaclass(type):
|
| - pattern = r"""
|
| - %(delim)s(?:
|
| - (?P<escaped>%(delim)s) | # Escape sequence of two delimiters
|
| - (?P<named>%(id)s) | # delimiter and a Python identifier
|
| - {(?P<braced>%(id)s)} | # delimiter and a braced identifier
|
| - (?P<invalid>) # Other ill-formed delimiter exprs
|
| - )
|
| - """
|
| -
|
| - def __init__(cls, name, bases, dct):
|
| - super(_TemplateMetaclass, cls).__init__(name, bases, dct)
|
| - if 'pattern' in dct:
|
| - pattern = cls.pattern
|
| - else:
|
| - pattern = _TemplateMetaclass.pattern % {
|
| - 'delim' : _re.escape(cls.delimiter),
|
| - 'id' : cls.idpattern,
|
| - }
|
| - cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE)
|
| -
|
| -
|
| -class Template:
|
| - """A string class for supporting $-substitutions."""
|
| - __metaclass__ = _TemplateMetaclass
|
| -
|
| - delimiter = '$'
|
| - idpattern = r'[_a-z][_a-z0-9]*'
|
| -
|
| - def __init__(self, template):
|
| - self.template = template
|
| -
|
| - # Search for $$, $identifier, ${identifier}, and any bare $'s
|
| -
|
| - def _invalid(self, mo):
|
| - i = mo.start('invalid')
|
| - lines = self.template[:i].splitlines(True)
|
| - if not lines:
|
| - colno = 1
|
| - lineno = 1
|
| - else:
|
| - colno = i - len(''.join(lines[:-1]))
|
| - lineno = len(lines)
|
| - raise ValueError('Invalid placeholder in string: line %d, col %d' %
|
| - (lineno, colno))
|
| -
|
| - def substitute(self, *args, **kws):
|
| - if len(args) > 1:
|
| - raise TypeError('Too many positional arguments')
|
| - if not args:
|
| - mapping = kws
|
| - elif kws:
|
| - mapping = _multimap(kws, args[0])
|
| - else:
|
| - mapping = args[0]
|
| - # Helper function for .sub()
|
| - def convert(mo):
|
| - # Check the most common path first.
|
| - named = mo.group('named') or mo.group('braced')
|
| - if named is not None:
|
| - val = mapping[named]
|
| - # We use this idiom instead of str() because the latter will
|
| - # fail if val is a Unicode containing non-ASCII characters.
|
| - return '%s' % val
|
| - if mo.group('escaped') is not None:
|
| - return self.delimiter
|
| - if mo.group('invalid') is not None:
|
| - self._invalid(mo)
|
| - raise ValueError('Unrecognized named group in pattern',
|
| - self.pattern)
|
| - return self.pattern.sub(convert, self.template)
|
| -
|
| - def safe_substitute(self, *args, **kws):
|
| - if len(args) > 1:
|
| - raise TypeError('Too many positional arguments')
|
| - if not args:
|
| - mapping = kws
|
| - elif kws:
|
| - mapping = _multimap(kws, args[0])
|
| - else:
|
| - mapping = args[0]
|
| - # Helper function for .sub()
|
| - def convert(mo):
|
| - named = mo.group('named')
|
| - if named is not None:
|
| - try:
|
| - # We use this idiom instead of str() because the latter
|
| - # will fail if val is a Unicode containing non-ASCII
|
| - return '%s' % mapping[named]
|
| - except KeyError:
|
| - return self.delimiter + named
|
| - braced = mo.group('braced')
|
| - if braced is not None:
|
| - try:
|
| - return '%s' % mapping[braced]
|
| - except KeyError:
|
| - return self.delimiter + '{' + braced + '}'
|
| - if mo.group('escaped') is not None:
|
| - return self.delimiter
|
| - if mo.group('invalid') is not None:
|
| - return self.delimiter
|
| - raise ValueError('Unrecognized named group in pattern',
|
| - self.pattern)
|
| - return self.pattern.sub(convert, self.template)
|
| -
|
| -
|
|
|