Skip to content

Commit

Permalink
Merge "Fix support comprehensions inside functions when use strict_un…
Browse files Browse the repository at this point in the history
…defined…" into main
  • Loading branch information
zzzeek authored and Gerrit Code Review committed May 14, 2024
2 parents 042a63f + 30a6223 commit eece129
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
8 changes: 8 additions & 0 deletions doc/build/unreleased/398.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.. change::
:tags: bug, parser
:tickets: 398

Fixed regression caused by the fix for :ticket:`320` where new logic added
to interpret list and dictionary comprehensions would fail for expression
oriented keys. As the parsing in question was not necessary for these
keys, it's been removed. Pull request courtesy Sébastien Granjoux.
4 changes: 0 additions & 4 deletions mako/pyparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,6 @@ def visit_FunctionDef(self, node):

def visit_ListComp(self, node):
if self.in_function:
if not isinstance(node.elt, _ast.Name):
self.visit(node.elt)
for comp in node.generators:
self.visit(comp.iter)
else:
Expand All @@ -103,8 +101,6 @@ def visit_ListComp(self, node):

def visit_DictComp(self, node):
if self.in_function:
if not isinstance(node.key, _ast.Name):
self.visit(node.elt)
for comp in node.generators:
self.visit(comp.iter)
else:
Expand Down
15 changes: 15 additions & 0 deletions test/test_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -878,6 +878,21 @@ def test_list_comprehensions_plus_undeclared_strict(self):

eq_(result_lines(t.render(t="T")), ["t is: T", "a,b,c"])

def test_dict_comprehensions_in_function_plus_undeclared_strict(self):
t = Template(
"""
<%
def foo():
return {s[0]: s for s in ('foo',)}
%>
${ foo()['f'] }
""",
strict_undefined=True,
)

eq_(result_lines(t.render()), ["foo"])


class StopRenderingTest(TemplateTest):
def test_return_in_template(self):
Expand Down

0 comments on commit eece129

Please sign in to comment.