All pastes #86331 Raw Edit

jborg

public python v1 · immutable
·published 2006-07-12 19:34 UTC
rendered paste body
Index: markup/tests/template.py===================================================================--- markup/tests/template.py    (revision 76)+++ markup/tests/template.py    (working copy)@@ -411,6 +411,11 @@         self.assertEqual(Stream.TEXT, parts[2][0])         self.assertEqual(' baz', parts[2][1])+    def test_interpolate_mixed3(self):+        ctxt = Context(var=42)+        tmpl = Template('<root> ${var} $var</root>')+        self.assertEqual('<root> 42 42</root>', str(tmpl.generate(ctxt)))+     def test_interpolate_non_string_attrs(self):         ctxt = Context()         tmpl = Template('<root attr="${1}"/>')Index: markup/template.py===================================================================--- markup/template.py  (revision 76)+++ markup/template.py  (working copy)@@ -765,19 +765,20 @@         @param offset: the column number at which the text starts in the source             (optional)         """-        patterns = [Template._FULL_EXPR_RE, Template._SHORT_EXPR_RE]-        def _interpolate(text):+        def _interpolate(text, patterns):             for idx, group in enumerate(patterns.pop(0).split(text)):                 if idx % 2:                     yield EXPR, Expression(group), (lineno, offset)                 elif group:                     if patterns:-                        for result in _interpolate(group):+                        for result in _interpolate(group, patterns[:]):                             yield result                     else:                         yield TEXT, group.replace('$$', '$'), (filename, lineno ,                                                                offset)-        return _interpolate(text)+        return _interpolate(text, [Template._FULL_EXPR_RE,+                                   Template._SHORT_EXPR_RE])+     _interpolate = classmethod(_interpolate)     def generate(self, ctxt=None):