[Checkins] SVN: z3c.pt/trunk/z3c/pt/clauses.py Repeat-variable now
initialized properly.
Malthe Borch
mborch at gmail.com
Sat Mar 22 09:21:07 EDT 2008
Log message for revision 84842:
Repeat-variable now initialized properly.
Changed:
U z3c.pt/trunk/z3c/pt/clauses.py
-=-
Modified: z3c.pt/trunk/z3c/pt/clauses.py
===================================================================
--- z3c.pt/trunk/z3c/pt/clauses.py 2008-03-21 17:44:47 UTC (rev 84841)
+++ z3c.pt/trunk/z3c/pt/clauses.py 2008-03-22 13:21:06 UTC (rev 84842)
@@ -527,7 +527,7 @@
class Repeat(object):
"""
- >>> from z3c.pt.generation import CodeIO; stream = CodeIO()
+ >>> from z3c.pt.generation import CodeIO
>>> from z3c.pt.testing import pyexp
We need to set up the repeat object.
@@ -537,6 +537,7 @@
Simple repeat loop and repeat data structure:
+ >>> stream = CodeIO()
>>> _repeat = Repeat("i", pyexp("range(5)"))
>>> _repeat.begin(stream)
>>> stream.write("r = repeat['i']")
@@ -548,12 +549,20 @@
(3, 3, False, False, 4, True, False)
(4, 4, False, True, 5, False, True)
>>> _repeat.end(stream)
-
+
+ A repeat over an empty set.
+
+ >>> stream = CodeIO()
+ >>> _repeat = Repeat("j", pyexp("range(0).__iter__()"))
+ >>> _repeat.begin(stream)
+ >>> _repeat.end(stream)
+ >>> exec stream.getvalue()
+
"""
def __init__(self, v, e, scope=()):
self.variable = v
- self.define = Define(v, ("None",))
+ self.define = Define(v, types.value("None"))
self.assign = Assign(e)
def begin(self, stream):
@@ -573,12 +582,12 @@
stream.write("while %s:" % iterator)
stream.indent()
stream.write("%s = %s.next()" % (variable, iterator))
-
+
def end(self, stream):
# cook before leaving loop
- stream.cook()
+ stream.cook()
+ stream.outdent()
- stream.outdent()
self.define.end(stream)
self.assign.end(stream)
stream.restore()
More information about the Checkins
mailing list