diff options
author | David Lord <davidism@gmail.com> | 2019-11-07 18:57:21 -0800 |
---|---|---|
committer | David Lord <davidism@gmail.com> | 2019-11-07 19:05:16 -0800 |
commit | 4d0949b3087e10c5bd183e7b7f22b15a74b95f68 (patch) | |
tree | da55a6740db12d7d4869d9c245fb10391a73777a /jinja2 | |
parent | 24d86a9615404221a23ecedc15bd818e72026b2e (diff) | |
download | jinja2-refactor-loop-context.tar.gz |
async templates await attribute accessrefactor-loop-context
Diffstat (limited to 'jinja2')
-rw-r--r-- | jinja2/compiler.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 00b29b8..50e00ab 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -1551,10 +1551,16 @@ class CodeGenerator(NodeVisitor): @optimizeconst def visit_Getattr(self, node, frame): + if self.environment.is_async: + self.write("await auto_await(") + self.write('environment.getattr(') self.visit(node.node, frame) self.write(', %r)' % node.attr) + if self.environment.is_async: + self.write(")") + @optimizeconst def visit_Getitem(self, node, frame): # slices bypass the environment getitem method. @@ -1564,12 +1570,18 @@ class CodeGenerator(NodeVisitor): self.visit(node.arg, frame) self.write(']') else: + if self.environment.is_async: + self.write("await auto_await(") + self.write('environment.getitem(') self.visit(node.node, frame) self.write(', ') self.visit(node.arg, frame) self.write(')') + if self.environment.is_async: + self.write(")") + def visit_Slice(self, node, frame): if node.start is not None: self.visit(node.start, frame) |