diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2017-01-07 02:44:37 +0100 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2017-01-07 02:44:37 +0100 |
commit | 01d9e7e906386d24ef3d067bee40401a138098e6 (patch) | |
tree | 1f18463a483c3c75cdbf7c3f787b8b14a386b814 /jinja2 | |
parent | e8ef8aaceea50af07a14fcfb26360d3cf9715639 (diff) | |
download | jinja-01d9e7e906386d24ef3d067bee40401a138098e6.tar.gz |
Smaller fixes to stuff that broke on 3.x
Diffstat (limited to 'jinja2')
-rw-r--r-- | jinja2/asyncfilters.py | 2 | ||||
-rw-r--r-- | jinja2/nodes.py | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/jinja2/asyncfilters.py b/jinja2/asyncfilters.py index d12afaf4..5c1f46d7 100644 --- a/jinja2/asyncfilters.py +++ b/jinja2/asyncfilters.py @@ -47,6 +47,8 @@ def dualfilter(normal_filter, async_filter): if wrap_evalctx: wrapper.evalcontextfilter = True + wrapper.asyncfiltervariant = True + return wrapper diff --git a/jinja2/nodes.py b/jinja2/nodes.py index 76f7814c..4d62cccb 100644 --- a/jinja2/nodes.py +++ b/jinja2/nodes.py @@ -592,6 +592,13 @@ class Filter(Expr): filter_ = self.environment.filters.get(self.name) if filter_ is None or getattr(filter_, 'contextfilter', False): raise Impossible() + + # We cannot constant handle async filters, so we need to make sure + # to not go down this path. + if eval_ctx.environment.is_async and \ + getattr(filter_, 'asyncfiltervariant', False): + raise Impossible() + obj = self.node.as_const(eval_ctx) args = [obj] + [x.as_const(eval_ctx) for x in self.args] if getattr(filter_, 'evalcontextfilter', False): |