readded support for recursive for-loops
--HG--
branch : trunk
diff --git a/jinja2/runtime.py b/jinja2/runtime.py
index 8fb3f0b..d734182 100644
--- a/jinja2/runtime.py
+++ b/jinja2/runtime.py
@@ -178,10 +178,11 @@
class LoopContext(object):
"""A loop context for dynamic iteration."""
- def __init__(self, iterable, enforce_length=False):
+ def __init__(self, iterable, enforce_length=False, recurse=None):
self._iterable = iterable
self._next = iter(iterable).next
self._length = None
+ self._recurse = recurse
self.index0 = -1
if enforce_length:
len(self)
@@ -204,6 +205,12 @@
def __iter__(self):
return self
+ def __call__(self, iterable):
+ if self._recurse is None:
+ raise TypeError('Tried to call non recursive loop. Maybe you '
+ 'forgot the "recursive" keyword.')
+ return self._recurse(iterable, self._recurse)
+
def next(self):
self.index0 += 1
return self._next(), self