Down to 7 failures for Python 3. We're onto something.
--HG--
branch : trunk
diff --git a/jinja2/nodes.py b/jinja2/nodes.py
index 5972139..424c1cd 100644
--- a/jinja2/nodes.py
+++ b/jinja2/nodes.py
@@ -494,13 +494,18 @@
def as_const(self, obj=None):
if self.node is obj is None:
raise Impossible()
- filter = self.environment.filters.get(self.name)
- if filter is None or getattr(filter, 'contextfilter', False):
+ # we have to be careful here because we call filter_ below.
+ # if this variable would be called filter, 2to3 would wrap the
+ # call in a list beause it is assuming we are talking about the
+ # builtin filter function here which no longer returns a list in
+ # python 3. because of that, do not rename filter_ to filter!
+ filter_ = self.environment.filters.get(self.name)
+ if filter_ is None or getattr(filter_, 'contextfilter', False):
raise Impossible()
if obj is None:
obj = self.node.as_const()
args = [x.as_const() for x in self.args]
- if getattr(filter, 'environmentfilter', False):
+ if getattr(filter_, 'environmentfilter', False):
args.insert(0, self.environment)
kwargs = dict(x.as_const() for x in self.kwargs)
if self.dyn_args is not None:
@@ -514,7 +519,7 @@
except:
raise Impossible()
try:
- return filter(obj, *args, **kwargs)
+ return filter_(obj, *args, **kwargs)
except:
raise Impossible()