bpo-44081: improve ast.unparse() for lambdas with no parameters (GH-26000)

This commit is contained in:
Batuhan Taskaya 2021-05-15 15:55:53 +03:00 committed by GitHub
parent 4aa63d65a9
commit e4e931a67e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 5 deletions

View file

@ -716,9 +716,9 @@ class _Unparser(NodeVisitor):
self.maybe_newline()
self.write(" " * self._indent + text)
def write(self, text):
"""Append a piece of text"""
self._source.append(text)
def write(self, *text):
"""Add new source parts"""
self._source.extend(text)
@contextmanager
def buffered(self, buffer = None):
@ -1566,8 +1566,11 @@ class _Unparser(NodeVisitor):
def visit_Lambda(self, node):
with self.require_parens(_Precedence.TEST, node):
self.write("lambda ")
self.traverse(node.args)
self.write("lambda")
with self.buffered() as buffer:
self.traverse(node.args)
if buffer:
self.write(" ", *buffer)
self.write(": ")
self.set_precedence(_Precedence.TEST, node.body)
self.traverse(node.body)