diff markup/template.py @ 101:5df0d81ac5d6 trunk

Ported [115] to trunk.
author cmlenz
date Mon, 24 Jul 2006 18:57:33 +0000
parents 2fe86a99947f
children f12e7987d7f4
line wrap: on
line diff
--- a/markup/template.py
+++ b/markup/template.py
@@ -243,7 +243,7 @@
     def __call__(self, stream, ctxt, directives):
         def _generate():
             kind, data, pos = stream.next()
-            if kind is Stream.START:
+            if kind is START:
                 yield kind, data, pos # emit start tag
             yield EXPR, self.expr, pos
             previous = stream.next()
@@ -363,20 +363,22 @@
 
     def __call__(self, stream, ctxt, directives):
         iterable = self.expr.evaluate(ctxt)
-        if iterable is not None:
-            scope = {}
-            stream = list(stream)
-            targets = self.targets
-            for item in iter(iterable):
-                if len(targets) == 1:
-                    scope[targets[0]] = item
-                else:
-                    for idx, name in enumerate(targets):
-                        scope[name] = item[idx]
-                ctxt.push(scope)
-                for event in _apply_directives(stream, ctxt, directives):
-                    yield event
-                ctxt.pop()
+        if iterable is None:
+            return
+
+        scope = {}
+        stream = list(stream)
+        targets = self.targets
+        for item in iter(iterable):
+            if len(targets) == 1:
+                scope[targets[0]] = item
+            else:
+                for idx, name in enumerate(targets):
+                    scope[name] = item[idx]
+            ctxt.push(scope)
+            for event in _apply_directives(stream, ctxt, directives):
+                yield event
+            ctxt.pop()
 
     def __repr__(self):
         return '<%s "%s in %s">' % (self.__class__.__name__,
Copyright (C) 2012-2017 Edgewall Software