summaryrefslogtreecommitdiff
path: root/jinja2/compiler.py
diff options
context:
space:
mode:
authorDavid Lord <davidism@gmail.com>2019-11-07 18:57:21 -0800
committerDavid Lord <davidism@gmail.com>2019-11-07 19:05:16 -0800
commit4d0949b3087e10c5bd183e7b7f22b15a74b95f68 (patch)
treeda55a6740db12d7d4869d9c245fb10391a73777a /jinja2/compiler.py
parent24d86a9615404221a23ecedc15bd818e72026b2e (diff)
downloadjinja2-refactor-loop-context.tar.gz
async templates await attribute accessrefactor-loop-context
Diffstat (limited to 'jinja2/compiler.py')
-rw-r--r--jinja2/compiler.py12
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)