summaryrefslogtreecommitdiffstats
path: root/Lib/ast.py
diff options
context:
space:
mode:
authorMatthew Rahtz <matthew.rahtz@gmail.com>2022-03-26 16:55:35 (GMT)
committerGitHub <noreply@github.com>2022-03-26 16:55:35 (GMT)
commite8e737bcf6d22927caebc30c5d57ac4634063219 (patch)
tree6c0d4d51e8216f02fa0e6874aa4d78e20dd9397a /Lib/ast.py
parent26cca8067bf5306e372c0e90036d832c5021fd90 (diff)
downloadcpython-e8e737bcf6d22927caebc30c5d57ac4634063219.zip
cpython-e8e737bcf6d22927caebc30c5d57ac4634063219.tar.gz
cpython-e8e737bcf6d22927caebc30c5d57ac4634063219.tar.bz2
bpo-43224: Implement PEP 646 grammar changes (GH-31018)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Diffstat (limited to 'Lib/ast.py')
-rw-r--r--Lib/ast.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/Lib/ast.py b/Lib/ast.py
index 625738a..e81e280 100644
--- a/Lib/ast.py
+++ b/Lib/ast.py
@@ -1476,20 +1476,17 @@ class _Unparser(NodeVisitor):
self.traverse(e)
def visit_Subscript(self, node):
- def is_simple_tuple(slice_value):
- # when unparsing a non-empty tuple, the parentheses can be safely
- # omitted if there aren't any elements that explicitly requires
- # parentheses (such as starred expressions).
+ def is_non_empty_tuple(slice_value):
return (
isinstance(slice_value, Tuple)
and slice_value.elts
- and not any(isinstance(elt, Starred) for elt in slice_value.elts)
)
self.set_precedence(_Precedence.ATOM, node.value)
self.traverse(node.value)
with self.delimit("[", "]"):
- if is_simple_tuple(node.slice):
+ if is_non_empty_tuple(node.slice):
+ # parentheses can be omitted if the tuple isn't empty
self.items_view(self.traverse, node.slice.elts)
else:
self.traverse(node.slice)