diff --git a/00433-preserve-ast-nodes-for-format-specifiers-with-single-elements.patch b/00433-preserve-ast-nodes-for-format-specifiers-with-single-elements.patch new file mode 100644 index 0000000..34d301d --- /dev/null +++ b/00433-preserve-ast-nodes-for-format-specifiers-with-single-elements.patch @@ -0,0 +1,3177 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Pablo Galindo Salgado +Date: Sat, 27 Jul 2024 20:27:01 +0100 +Subject: [PATCH] 00433: Preserve AST nodes for format specifiers with single + elements + +(cherry picked from commit db2d8b6db1b56c2bd3802b86f9b76da33e8898d7) +--- + Doc/library/ast.rst | 4 +- + Lib/test/test_ast.py | 3111 +---------------- + ...-07-26-14-05-51.gh-issue-122300.SVIF-l.rst | 2 + + Parser/action_helpers.c | 3 +- + 4 files changed, 138 insertions(+), 2982 deletions(-) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2024-07-26-14-05-51.gh-issue-122300.SVIF-l.rst + +diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst +index 727d44df0c..c5daa6e243 100644 +--- a/Doc/library/ast.rst ++++ b/Doc/library/ast.rst +@@ -316,7 +316,9 @@ Literals + args=[ + Name(id='a', ctx=Load())]), + conversion=-1, +- format_spec=Constant(value='.3'))])) ++ format_spec=JoinedStr( ++ values=[ ++ Constant(value='.3')]))])) + + + .. class:: List(elts, ctx) +diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py +index e3383355d3..99666ba100 100644 +--- a/Lib/test/test_ast.py ++++ b/Lib/test/test_ast.py +@@ -3461,2989 +3461,140 @@ def main(): + + #### EVERYTHING BELOW IS GENERATED BY python Lib/test/test_ast.py -g ##### + exec_results = [ +- ("Module", [("Expr", (1, 0, 1, 4), ("Constant", (1, 0, 1, 4), None, None))], []), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 18), +- ("Constant", (1, 0, 1, 18), "module docstring", None), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 13), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 9, 1, 13))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 29), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [ +- ( +- "Expr", +- (1, 9, 1, 29), +- ("Constant", (1, 9, 1, 29), "function docstring", None), +- ) +- ], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 14), +- "f", +- ( +- "arguments", +- [], +- [("arg", (1, 6, 1, 7), "a", None, None)], +- None, +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 10, 1, 14))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 16), +- "f", +- ( +- "arguments", +- [], +- [("arg", (1, 6, 1, 7), "a", None, None)], +- None, +- [], +- [], +- None, +- [("Constant", (1, 8, 1, 9), 0, None)], +- ), +- [("Pass", (1, 12, 1, 16))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 18), +- "f", +- ( +- "arguments", +- [], +- [], +- ("arg", (1, 7, 1, 11), "args", None, None), +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 14, 1, 18))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 23), +- "f", +- ( +- "arguments", +- [], +- [], +- ( +- "arg", +- (1, 7, 1, 16), +- "args", +- ( +- "Starred", +- (1, 13, 1, 16), +- ("Name", (1, 14, 1, 16), "Ts", ("Load",)), +- ("Load",), +- ), +- None, +- ), +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 19, 1, 23))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 36), +- "f", +- ( +- "arguments", +- [], +- [], +- ( +- "arg", +- (1, 7, 1, 29), +- "args", +- ( +- "Starred", +- (1, 13, 1, 29), +- ( +- "Subscript", +- (1, 14, 1, 29), +- ("Name", (1, 14, 1, 19), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 20, 1, 28), +- [ +- ("Name", (1, 20, 1, 23), "int", ("Load",)), +- ("Constant", (1, 25, 1, 28), Ellipsis, None), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- ), +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 32, 1, 36))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 36), +- "f", +- ( +- "arguments", +- [], +- [], +- ( +- "arg", +- (1, 7, 1, 29), +- "args", +- ( +- "Starred", +- (1, 13, 1, 29), +- ( +- "Subscript", +- (1, 14, 1, 29), +- ("Name", (1, 14, 1, 19), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 20, 1, 28), +- [ +- ("Name", (1, 20, 1, 23), "int", ("Load",)), +- ( +- "Starred", +- (1, 25, 1, 28), +- ("Name", (1, 26, 1, 28), "Ts", ("Load",)), +- ("Load",), +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- ), +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 32, 1, 36))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 21), +- "f", +- ( +- "arguments", +- [], +- [], +- None, +- [], +- [], +- ("arg", (1, 8, 1, 14), "kwargs", None, None), +- [], +- ), +- [("Pass", (1, 17, 1, 21))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 71), +- "f", +- ( +- "arguments", +- [], +- [ +- ("arg", (1, 6, 1, 7), "a", None, None), +- ("arg", (1, 9, 1, 10), "b", None, None), +- ("arg", (1, 14, 1, 15), "c", None, None), +- ("arg", (1, 22, 1, 23), "d", None, None), +- ("arg", (1, 28, 1, 29), "e", None, None), +- ], +- ("arg", (1, 35, 1, 39), "args", None, None), +- [("arg", (1, 41, 1, 42), "f", None, None)], +- [("Constant", (1, 43, 1, 45), 42, None)], +- ("arg", (1, 49, 1, 55), "kwargs", None, None), +- [ +- ("Constant", (1, 11, 1, 12), 1, None), +- ("Constant", (1, 16, 1, 20), None, None), +- ("List", (1, 24, 1, 26), [], ("Load",)), +- ("Dict", (1, 30, 1, 32), [], []), +- ], +- ), +- [ +- ( +- "Expr", +- (1, 58, 1, 71), +- ("Constant", (1, 58, 1, 71), "doc for f()", None), +- ) +- ], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 27), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 23, 1, 27))], +- [], +- ( +- "Subscript", +- (1, 11, 1, 21), +- ("Name", (1, 11, 1, 16), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 17, 1, 20), +- [ +- ( +- "Starred", +- (1, 17, 1, 20), +- ("Name", (1, 18, 1, 20), "Ts", ("Load",)), +- ("Load",), +- ) +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 32), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 28, 1, 32))], +- [], +- ( +- "Subscript", +- (1, 11, 1, 26), +- ("Name", (1, 11, 1, 16), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 17, 1, 25), +- [ +- ("Name", (1, 17, 1, 20), "int", ("Load",)), +- ( +- "Starred", +- (1, 22, 1, 25), +- ("Name", (1, 23, 1, 25), "Ts", ("Load",)), +- ("Load",), +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 45), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 41, 1, 45))], +- [], +- ( +- "Subscript", +- (1, 11, 1, 39), +- ("Name", (1, 11, 1, 16), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 17, 1, 38), +- [ +- ("Name", (1, 17, 1, 20), "int", ("Load",)), +- ( +- "Starred", +- (1, 22, 1, 38), +- ( +- "Subscript", +- (1, 23, 1, 38), +- ("Name", (1, 23, 1, 28), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 29, 1, 37), +- [ +- ("Name", (1, 29, 1, 32), "int", ("Load",)), +- ( +- "Constant", +- (1, 34, 1, 37), +- Ellipsis, +- None, +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- ("Load",), +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [("ClassDef", (1, 0, 1, 12), "C", [], [], [("Pass", (1, 8, 1, 12))], [], [])], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 32), +- "C", +- [], +- [], +- [ +- ( +- "Expr", +- (1, 9, 1, 32), +- ("Constant", (1, 9, 1, 32), "docstring for class C", None), +- ) +- ], +- [], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 21), +- "C", +- [("Name", (1, 8, 1, 14), "object", ("Load",))], +- [], +- [("Pass", (1, 17, 1, 21))], +- [], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 16), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Return", (1, 8, 1, 16), ("Constant", (1, 15, 1, 16), 1, None))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ("Module", [("Delete", (1, 0, 1, 5), [("Name", (1, 4, 1, 5), "v", ("Del",))])], []), +- ( +- "Module", +- [ +- ( +- "Assign", +- (1, 0, 1, 5), +- [("Name", (1, 0, 1, 1), "v", ("Store",))], +- ("Constant", (1, 4, 1, 5), 1, None), +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Assign", +- (1, 0, 1, 7), +- [ +- ( +- "Tuple", +- (1, 0, 1, 3), +- [ +- ("Name", (1, 0, 1, 1), "a", ("Store",)), +- ("Name", (1, 2, 1, 3), "b", ("Store",)), +- ], +- ("Store",), +- ) +- ], +- ("Name", (1, 6, 1, 7), "c", ("Load",)), +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Assign", +- (1, 0, 1, 9), +- [ +- ( +- "Tuple", +- (1, 0, 1, 5), +- [ +- ("Name", (1, 1, 1, 2), "a", ("Store",)), +- ("Name", (1, 3, 1, 4), "b", ("Store",)), +- ], +- ("Store",), +- ) +- ], +- ("Name", (1, 8, 1, 9), "c", ("Load",)), +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Assign", +- (1, 0, 1, 9), +- [ +- ( +- "List", +- (1, 0, 1, 5), +- [ +- ("Name", (1, 1, 1, 2), "a", ("Store",)), +- ("Name", (1, 3, 1, 4), "b", ("Store",)), +- ], +- ("Store",), +- ) +- ], +- ("Name", (1, 8, 1, 9), "c", ("Load",)), +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AnnAssign", +- (1, 0, 1, 13), +- ("Name", (1, 0, 1, 1), "x", ("Store",)), +- ( +- "Subscript", +- (1, 3, 1, 13), +- ("Name", (1, 3, 1, 8), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 9, 1, 12), +- [ +- ( +- "Starred", +- (1, 9, 1, 12), +- ("Name", (1, 10, 1, 12), "Ts", ("Load",)), +- ("Load",), +- ) +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- 1, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AnnAssign", +- (1, 0, 1, 18), +- ("Name", (1, 0, 1, 1), "x", ("Store",)), +- ( +- "Subscript", +- (1, 3, 1, 18), +- ("Name", (1, 3, 1, 8), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 9, 1, 17), +- [ +- ("Name", (1, 9, 1, 12), "int", ("Load",)), +- ( +- "Starred", +- (1, 14, 1, 17), +- ("Name", (1, 15, 1, 17), "Ts", ("Load",)), +- ("Load",), +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- 1, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AnnAssign", +- (1, 0, 1, 31), +- ("Name", (1, 0, 1, 1), "x", ("Store",)), +- ( +- "Subscript", +- (1, 3, 1, 31), +- ("Name", (1, 3, 1, 8), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 9, 1, 30), +- [ +- ("Name", (1, 9, 1, 12), "int", ("Load",)), +- ( +- "Starred", +- (1, 14, 1, 30), +- ( +- "Subscript", +- (1, 15, 1, 30), +- ("Name", (1, 15, 1, 20), "tuple", ("Load",)), +- ( +- "Tuple", +- (1, 21, 1, 29), +- [ +- ("Name", (1, 21, 1, 24), "str", ("Load",)), +- ( +- "Constant", +- (1, 26, 1, 29), +- Ellipsis, +- None, +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- ("Load",), +- ), +- ], +- ("Load",), +- ), +- ("Load",), +- ), +- None, +- 1, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AugAssign", +- (1, 0, 1, 6), +- ("Name", (1, 0, 1, 1), "v", ("Store",)), +- ("Add",), +- ("Constant", (1, 5, 1, 6), 1, None), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "For", +- (1, 0, 1, 15), +- ("Name", (1, 4, 1, 5), "v", ("Store",)), +- ("Name", (1, 9, 1, 10), "v", ("Load",)), +- [("Pass", (1, 11, 1, 15))], +- [], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "While", +- (1, 0, 1, 12), +- ("Name", (1, 6, 1, 7), "v", ("Load",)), +- [("Pass", (1, 8, 1, 12))], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "If", +- (1, 0, 1, 9), +- ("Name", (1, 3, 1, 4), "v", ("Load",)), +- [("Pass", (1, 5, 1, 9))], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "If", +- (1, 0, 4, 6), +- ("Name", (1, 3, 1, 4), "a", ("Load",)), +- [("Pass", (2, 2, 2, 6))], +- [ +- ( +- "If", +- (3, 0, 4, 6), +- ("Name", (3, 5, 3, 6), "b", ("Load",)), +- [("Pass", (4, 2, 4, 6))], +- [], +- ) +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "If", +- (1, 0, 6, 6), +- ("Name", (1, 3, 1, 4), "a", ("Load",)), +- [("Pass", (2, 2, 2, 6))], +- [ +- ( +- "If", +- (3, 0, 6, 6), +- ("Name", (3, 5, 3, 6), "b", ("Load",)), +- [("Pass", (4, 2, 4, 6))], +- [("Pass", (6, 2, 6, 6))], +- ) +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "With", +- (1, 0, 1, 17), +- [ +- ( +- "withitem", +- ("Name", (1, 5, 1, 6), "x", ("Load",)), +- ("Name", (1, 10, 1, 11), "y", ("Store",)), +- ) +- ], +- [("Pass", (1, 13, 1, 17))], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "With", +- (1, 0, 1, 25), +- [ +- ( +- "withitem", +- ("Name", (1, 5, 1, 6), "x", ("Load",)), +- ("Name", (1, 10, 1, 11), "y", ("Store",)), +- ), +- ( +- "withitem", +- ("Name", (1, 13, 1, 14), "z", ("Load",)), +- ("Name", (1, 18, 1, 19), "q", ("Store",)), +- ), +- ], +- [("Pass", (1, 21, 1, 25))], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "With", +- (1, 0, 1, 19), +- [ +- ( +- "withitem", +- ("Name", (1, 6, 1, 7), "x", ("Load",)), +- ("Name", (1, 11, 1, 12), "y", ("Store",)), +- ) +- ], +- [("Pass", (1, 15, 1, 19))], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "With", +- (1, 0, 1, 17), +- [ +- ("withitem", ("Name", (1, 6, 1, 7), "x", ("Load",)), None), +- ("withitem", ("Name", (1, 9, 1, 10), "y", ("Load",)), None), +- ], +- [("Pass", (1, 13, 1, 17))], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Raise", +- (1, 0, 1, 25), +- ( +- "Call", +- (1, 6, 1, 25), +- ("Name", (1, 6, 1, 15), "Exception", ("Load",)), +- [("Constant", (1, 16, 1, 24), "string", None)], +- [], +- ), +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Try", +- (1, 0, 4, 6), +- [("Pass", (2, 2, 2, 6))], +- [ +- ( +- "ExceptHandler", +- (3, 0, 4, 6), +- ("Name", (3, 7, 3, 16), "Exception", ("Load",)), +- None, +- [("Pass", (4, 2, 4, 6))], +- ) +- ], +- [], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Try", +- (1, 0, 4, 6), +- [("Pass", (2, 2, 2, 6))], +- [], +- [], +- [("Pass", (4, 2, 4, 6))], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TryStar", +- (1, 0, 4, 6), +- [("Pass", (2, 2, 2, 6))], +- [ +- ( +- "ExceptHandler", +- (3, 0, 4, 6), +- ("Name", (3, 8, 3, 17), "Exception", ("Load",)), +- None, +- [("Pass", (4, 2, 4, 6))], +- ) +- ], +- [], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [("Assert", (1, 0, 1, 8), ("Name", (1, 7, 1, 8), "v", ("Load",)), None)], +- [], +- ), +- ( +- "Module", +- [("Import", (1, 0, 1, 10), [("alias", (1, 7, 1, 10), "sys", None)])], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ImportFrom", +- (1, 0, 1, 17), +- "sys", +- [("alias", (1, 16, 1, 17), "v", None)], +- 0, +- ) +- ], +- [], +- ), +- ("Module", [("Global", (1, 0, 1, 8), ["v"])], []), +- ("Module", [("Expr", (1, 0, 1, 1), ("Constant", (1, 0, 1, 1), 1, None))], []), +- ("Module", [("Pass", (1, 0, 1, 4))], []), +- ( +- "Module", +- [ +- ( +- "For", +- (1, 0, 1, 16), +- ("Name", (1, 4, 1, 5), "v", ("Store",)), +- ("Name", (1, 9, 1, 10), "v", ("Load",)), +- [("Break", (1, 11, 1, 16))], +- [], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "For", +- (1, 0, 1, 19), +- ("Name", (1, 4, 1, 5), "v", ("Store",)), +- ("Name", (1, 9, 1, 10), "v", ("Load",)), +- [("Continue", (1, 11, 1, 19))], +- [], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "For", +- (1, 0, 1, 18), +- ( +- "Tuple", +- (1, 4, 1, 7), +- [ +- ("Name", (1, 4, 1, 5), "a", ("Store",)), +- ("Name", (1, 6, 1, 7), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 11, 1, 12), "c", ("Load",)), +- [("Pass", (1, 14, 1, 18))], +- [], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "For", +- (1, 0, 1, 20), +- ( +- "Tuple", +- (1, 4, 1, 9), +- [ +- ("Name", (1, 5, 1, 6), "a", ("Store",)), +- ("Name", (1, 7, 1, 8), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 13, 1, 14), "c", ("Load",)), +- [("Pass", (1, 16, 1, 20))], +- [], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "For", +- (1, 0, 1, 20), +- ( +- "List", +- (1, 4, 1, 9), +- [ +- ("Name", (1, 5, 1, 6), "a", ("Store",)), +- ("Name", (1, 7, 1, 8), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 13, 1, 14), "c", ("Load",)), +- [("Pass", (1, 16, 1, 20))], +- [], +- None, +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 11, 5), +- ( +- "GeneratorExp", +- (1, 0, 11, 5), +- ( +- "Tuple", +- (2, 4, 6, 5), +- [ +- ("Name", (3, 4, 3, 6), "Aa", ("Load",)), +- ("Name", (5, 7, 5, 9), "Bb", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (8, 4, 10, 6), +- [ +- ("Name", (8, 4, 8, 6), "Aa", ("Store",)), +- ("Name", (10, 4, 10, 6), "Bb", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (10, 10, 10, 12), "Cc", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 34), +- ( +- "DictComp", +- (1, 0, 1, 34), +- ("Name", (1, 1, 1, 2), "a", ("Load",)), +- ("Name", (1, 5, 1, 6), "b", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (1, 11, 1, 12), "w", ("Store",)), +- ("Name", (1, 16, 1, 17), "x", ("Load",)), +- [], +- 0, +- ), +- ( +- "comprehension", +- ("Name", (1, 22, 1, 23), "m", ("Store",)), +- ("Name", (1, 27, 1, 28), "p", ("Load",)), +- [("Name", (1, 32, 1, 33), "g", ("Load",))], +- 0, +- ), +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 20), +- ( +- "DictComp", +- (1, 0, 1, 20), +- ("Name", (1, 1, 1, 2), "a", ("Load",)), +- ("Name", (1, 5, 1, 6), "b", ("Load",)), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 14), +- [ +- ("Name", (1, 11, 1, 12), "v", ("Store",)), +- ("Name", (1, 13, 1, 14), "w", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 18, 1, 19), "x", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 19), +- ( +- "SetComp", +- (1, 0, 1, 19), +- ("Name", (1, 1, 1, 2), "r", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (1, 7, 1, 8), "l", ("Store",)), +- ("Name", (1, 12, 1, 13), "x", ("Load",)), +- [("Name", (1, 17, 1, 18), "g", ("Load",))], +- 0, +- ) +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 16), +- ( +- "SetComp", +- (1, 0, 1, 16), +- ("Name", (1, 1, 1, 2), "r", ("Load",)), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 7, 1, 10), +- [ +- ("Name", (1, 7, 1, 8), "l", ("Store",)), +- ("Name", (1, 9, 1, 10), "m", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 14, 1, 15), "x", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AsyncFunctionDef", +- (1, 0, 3, 18), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [ +- ( +- "Expr", +- (2, 1, 2, 17), +- ("Constant", (2, 1, 2, 17), "async function", None), +- ), +- ( +- "Expr", +- (3, 1, 3, 18), +- ( +- "Await", +- (3, 1, 3, 18), +- ( +- "Call", +- (3, 7, 3, 18), +- ("Name", (3, 7, 3, 16), "something", ("Load",)), +- [], +- [], +- ), +- ), +- ), +- ], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AsyncFunctionDef", +- (1, 0, 3, 8), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [ +- ( +- "AsyncFor", +- (2, 1, 3, 8), +- ("Name", (2, 11, 2, 12), "e", ("Store",)), +- ("Name", (2, 16, 2, 17), "i", ("Load",)), +- [ +- ( +- "Expr", +- (2, 19, 2, 20), +- ("Constant", (2, 19, 2, 20), 1, None), +- ) +- ], +- [("Expr", (3, 7, 3, 8), ("Constant", (3, 7, 3, 8), 2, None))], +- None, +- ) +- ], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AsyncFunctionDef", +- (1, 0, 2, 21), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [ +- ( +- "AsyncWith", +- (2, 1, 2, 21), +- [ +- ( +- "withitem", +- ("Name", (2, 12, 2, 13), "a", ("Load",)), +- ("Name", (2, 17, 2, 18), "b", ("Store",)), +- ) +- ], +- [ +- ( +- "Expr", +- (2, 20, 2, 21), +- ("Constant", (2, 20, 2, 21), 1, None), +- ) +- ], +- None, +- ) +- ], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 14), +- ( +- "Dict", +- (1, 0, 1, 14), +- [None, ("Constant", (1, 10, 1, 11), 2, None)], +- [ +- ( +- "Dict", +- (1, 3, 1, 8), +- [("Constant", (1, 4, 1, 5), 1, None)], +- [("Constant", (1, 6, 1, 7), 2, None)], +- ), +- ("Constant", (1, 12, 1, 13), 3, None), +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 12), +- ( +- "Set", +- (1, 0, 1, 12), +- [ +- ( +- "Starred", +- (1, 1, 1, 8), +- ( +- "Set", +- (1, 2, 1, 8), +- [ +- ("Constant", (1, 3, 1, 4), 1, None), +- ("Constant", (1, 6, 1, 7), 2, None), +- ], +- ), +- ("Load",), +- ), +- ("Constant", (1, 10, 1, 11), 3, None), +- ], +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AsyncFunctionDef", +- (1, 0, 2, 21), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [ +- ( +- "Expr", +- (2, 1, 2, 21), +- ( +- "ListComp", +- (2, 1, 2, 21), +- ("Name", (2, 2, 2, 3), "i", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (2, 14, 2, 15), "b", ("Store",)), +- ("Name", (2, 19, 2, 20), "c", ("Load",)), +- [], +- 1, +- ) +- ], +- ), +- ) +- ], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (4, 0, 4, 13), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (4, 9, 4, 13))], +- [ +- ("Name", (1, 1, 1, 6), "deco1", ("Load",)), +- ( +- "Call", +- (2, 1, 2, 8), +- ("Name", (2, 1, 2, 6), "deco2", ("Load",)), +- [], +- [], +- ), +- ( +- "Call", +- (3, 1, 3, 9), +- ("Name", (3, 1, 3, 6), "deco3", ("Load",)), +- [("Constant", (3, 7, 3, 8), 1, None)], +- [], +- ), +- ], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "AsyncFunctionDef", +- (4, 0, 4, 19), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (4, 15, 4, 19))], +- [ +- ("Name", (1, 1, 1, 6), "deco1", ("Load",)), +- ( +- "Call", +- (2, 1, 2, 8), +- ("Name", (2, 1, 2, 6), "deco2", ("Load",)), +- [], +- [], +- ), +- ( +- "Call", +- (3, 1, 3, 9), +- ("Name", (3, 1, 3, 6), "deco3", ("Load",)), +- [("Constant", (3, 7, 3, 8), 1, None)], +- [], +- ), +- ], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (4, 0, 4, 13), +- "C", +- [], +- [], +- [("Pass", (4, 9, 4, 13))], +- [ +- ("Name", (1, 1, 1, 6), "deco1", ("Load",)), +- ( +- "Call", +- (2, 1, 2, 8), +- ("Name", (2, 1, 2, 6), "deco2", ("Load",)), +- [], +- [], +- ), +- ( +- "Call", +- (3, 1, 3, 9), +- ("Name", (3, 1, 3, 6), "deco3", ("Load",)), +- [("Constant", (3, 7, 3, 8), 1, None)], +- [], +- ), +- ], +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (2, 0, 2, 13), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (2, 9, 2, 13))], +- [ +- ( +- "Call", +- (1, 1, 1, 19), +- ("Name", (1, 1, 1, 5), "deco", ("Load",)), +- [ +- ( +- "GeneratorExp", +- (1, 5, 1, 19), +- ("Name", (1, 6, 1, 7), "a", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 17, 1, 18), "b", ("Load",)), +- [], +- 0, +- ) +- ], +- ) +- ], +- [], +- ) +- ], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (2, 0, 2, 13), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (2, 9, 2, 13))], +- [ +- ( +- "Attribute", +- (1, 1, 1, 6), +- ( +- "Attribute", +- (1, 1, 1, 4), +- ("Name", (1, 1, 1, 2), "a", ("Load",)), +- "b", +- ("Load",), +- ), +- "c", +- ("Load",), +- ) +- ], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "Expr", +- (1, 0, 1, 8), +- ( +- "NamedExpr", +- (1, 1, 1, 7), +- ("Name", (1, 1, 1, 2), "a", ("Store",)), +- ("Constant", (1, 6, 1, 7), 1, None), +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 18), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [], +- None, +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 14, 1, 18))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 26), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [ +- ("arg", (1, 12, 1, 13), "c", None, None), +- ("arg", (1, 15, 1, 16), "d", None, None), +- ("arg", (1, 18, 1, 19), "e", None, None), +- ], +- None, +- [], +- [], +- None, +- [], +- ), +- [("Pass", (1, 22, 1, 26))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 29), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [("arg", (1, 12, 1, 13), "c", None, None)], +- None, +- [ +- ("arg", (1, 18, 1, 19), "d", None, None), +- ("arg", (1, 21, 1, 22), "e", None, None), +- ], +- [None, None], +- None, +- [], +- ), +- [("Pass", (1, 25, 1, 29))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 39), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [("arg", (1, 12, 1, 13), "c", None, None)], +- None, +- [ +- ("arg", (1, 18, 1, 19), "d", None, None), +- ("arg", (1, 21, 1, 22), "e", None, None), +- ], +- [None, None], +- ("arg", (1, 26, 1, 32), "kwargs", None, None), +- [], +- ), +- [("Pass", (1, 35, 1, 39))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 20), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [], +- None, +- [], +- [], +- None, +- [("Constant", (1, 8, 1, 9), 1, None)], +- ), +- [("Pass", (1, 16, 1, 20))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 29), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [ +- ("arg", (1, 14, 1, 15), "b", None, None), +- ("arg", (1, 19, 1, 20), "c", None, None), +- ], +- None, +- [], +- [], +- None, +- [ +- ("Constant", (1, 8, 1, 9), 1, None), +- ("Constant", (1, 16, 1, 17), 2, None), +- ("Constant", (1, 21, 1, 22), 4, None), +- ], +- ), +- [("Pass", (1, 25, 1, 29))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 32), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [("arg", (1, 14, 1, 15), "b", None, None)], +- None, +- [("arg", (1, 22, 1, 23), "c", None, None)], +- [("Constant", (1, 24, 1, 25), 4, None)], +- None, +- [ +- ("Constant", (1, 8, 1, 9), 1, None), +- ("Constant", (1, 16, 1, 17), 2, None), +- ], +- ), +- [("Pass", (1, 28, 1, 32))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 30), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [("arg", (1, 14, 1, 15), "b", None, None)], +- None, +- [("arg", (1, 22, 1, 23), "c", None, None)], +- [None], +- None, +- [ +- ("Constant", (1, 8, 1, 9), 1, None), +- ("Constant", (1, 16, 1, 17), 2, None), +- ], +- ), +- [("Pass", (1, 26, 1, 30))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 42), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [("arg", (1, 14, 1, 15), "b", None, None)], +- None, +- [("arg", (1, 22, 1, 23), "c", None, None)], +- [("Constant", (1, 24, 1, 25), 4, None)], +- ("arg", (1, 29, 1, 35), "kwargs", None, None), +- [ +- ("Constant", (1, 8, 1, 9), 1, None), +- ("Constant", (1, 16, 1, 17), 2, None), +- ], +- ), +- [("Pass", (1, 38, 1, 42))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 40), +- "f", +- ( +- "arguments", +- [("arg", (1, 6, 1, 7), "a", None, None)], +- [("arg", (1, 14, 1, 15), "b", None, None)], +- None, +- [("arg", (1, 22, 1, 23), "c", None, None)], +- [None], +- ("arg", (1, 27, 1, 33), "kwargs", None, None), +- [ +- ("Constant", (1, 8, 1, 9), 1, None), +- ("Constant", (1, 16, 1, 17), 2, None), +- ], +- ), +- [("Pass", (1, 36, 1, 40))], +- [], +- None, +- None, +- [], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TypeAlias", +- (1, 0, 1, 12), +- ("Name", (1, 5, 1, 6), "X", ("Store",)), +- [], +- ("Name", (1, 9, 1, 12), "int", ("Load",)), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TypeAlias", +- (1, 0, 1, 15), +- ("Name", (1, 5, 1, 6), "X", ("Store",)), +- [("TypeVar", (1, 7, 1, 8), "T", None, None)], +- ("Name", (1, 12, 1, 15), "int", ("Load",)), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TypeAlias", +- (1, 0, 1, 32), +- ("Name", (1, 5, 1, 6), "X", ("Store",)), +- [ +- ("TypeVar", (1, 7, 1, 8), "T", None, None), +- ("TypeVarTuple", (1, 10, 1, 13), "Ts", None), +- ("ParamSpec", (1, 15, 1, 18), "P", None), +- ], +- ( +- "Tuple", +- (1, 22, 1, 32), +- [ +- ("Name", (1, 23, 1, 24), "T", ("Load",)), +- ("Name", (1, 26, 1, 28), "Ts", ("Load",)), +- ("Name", (1, 30, 1, 31), "P", ("Load",)), +- ], +- ("Load",), +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TypeAlias", +- (1, 0, 1, 37), +- ("Name", (1, 5, 1, 6), "X", ("Store",)), +- [ +- ( +- "TypeVar", +- (1, 7, 1, 13), +- "T", +- ("Name", (1, 10, 1, 13), "int", ("Load",)), +- None, +- ), +- ("TypeVarTuple", (1, 15, 1, 18), "Ts", None), +- ("ParamSpec", (1, 20, 1, 23), "P", None), +- ], +- ( +- "Tuple", +- (1, 27, 1, 37), +- [ +- ("Name", (1, 28, 1, 29), "T", ("Load",)), +- ("Name", (1, 31, 1, 33), "Ts", ("Load",)), +- ("Name", (1, 35, 1, 36), "P", ("Load",)), +- ], +- ("Load",), +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TypeAlias", +- (1, 0, 1, 44), +- ("Name", (1, 5, 1, 6), "X", ("Store",)), +- [ +- ( +- "TypeVar", +- (1, 7, 1, 20), +- "T", +- ( +- "Tuple", +- (1, 10, 1, 20), +- [ +- ("Name", (1, 11, 1, 14), "int", ("Load",)), +- ("Name", (1, 16, 1, 19), "str", ("Load",)), +- ], +- ("Load",), +- ), +- None, +- ), +- ("TypeVarTuple", (1, 22, 1, 25), "Ts", None), +- ("ParamSpec", (1, 27, 1, 30), "P", None), +- ], +- ( +- "Tuple", +- (1, 34, 1, 44), +- [ +- ("Name", (1, 35, 1, 36), "T", ("Load",)), +- ("Name", (1, 38, 1, 40), "Ts", ("Load",)), +- ("Name", (1, 42, 1, 43), "P", ("Load",)), +- ], +- ("Load",), +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "TypeAlias", +- (1, 0, 1, 48), +- ("Name", (1, 5, 1, 6), "X", ("Store",)), +- [ +- ( +- "TypeVar", +- (1, 7, 1, 17), +- "T", +- ("Name", (1, 10, 1, 13), "int", ("Load",)), +- ("Constant", (1, 16, 1, 17), 1, None), +- ), +- ( +- "TypeVarTuple", +- (1, 19, 1, 26), +- "Ts", +- ("Constant", (1, 25, 1, 26), 2, None), +- ), +- ( +- "ParamSpec", +- (1, 28, 1, 34), +- "P", +- ("Constant", (1, 33, 1, 34), 3, None), +- ), +- ], +- ( +- "Tuple", +- (1, 38, 1, 48), +- [ +- ("Name", (1, 39, 1, 40), "T", ("Load",)), +- ("Name", (1, 42, 1, 44), "Ts", ("Load",)), +- ("Name", (1, 46, 1, 47), "P", ("Load",)), +- ], +- ("Load",), +- ), +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 16), +- "X", +- [], +- [], +- [("Pass", (1, 12, 1, 16))], +- [], +- [("TypeVar", (1, 8, 1, 9), "T", None, None)], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 26), +- "X", +- [], +- [], +- [("Pass", (1, 22, 1, 26))], +- [], +- [ +- ("TypeVar", (1, 8, 1, 9), "T", None, None), +- ("TypeVarTuple", (1, 11, 1, 14), "Ts", None), +- ("ParamSpec", (1, 16, 1, 19), "P", None), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 31), +- "X", +- [], +- [], +- [("Pass", (1, 27, 1, 31))], +- [], +- [ +- ( +- "TypeVar", +- (1, 8, 1, 14), +- "T", +- ("Name", (1, 11, 1, 14), "int", ("Load",)), +- None, +- ), +- ("TypeVarTuple", (1, 16, 1, 19), "Ts", None), +- ("ParamSpec", (1, 21, 1, 24), "P", None), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 38), +- "X", +- [], +- [], +- [("Pass", (1, 34, 1, 38))], +- [], +- [ +- ( +- "TypeVar", +- (1, 8, 1, 21), +- "T", +- ( +- "Tuple", +- (1, 11, 1, 21), +- [ +- ("Name", (1, 12, 1, 15), "int", ("Load",)), +- ("Name", (1, 17, 1, 20), "str", ("Load",)), +- ], +- ("Load",), +- ), +- None, +- ), +- ("TypeVarTuple", (1, 23, 1, 26), "Ts", None), +- ("ParamSpec", (1, 28, 1, 31), "P", None), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "ClassDef", +- (1, 0, 1, 43), +- "X", +- [], +- [], +- [("Pass", (1, 39, 1, 43))], +- [], +- [ +- ( +- "TypeVar", +- (1, 8, 1, 18), +- "T", +- ("Name", (1, 11, 1, 14), "int", ("Load",)), +- ("Constant", (1, 17, 1, 18), 1, None), +- ), +- ( +- "TypeVarTuple", +- (1, 20, 1, 27), +- "Ts", +- ("Constant", (1, 26, 1, 27), 2, None), +- ), +- ( +- "ParamSpec", +- (1, 29, 1, 36), +- "P", +- ("Constant", (1, 35, 1, 36), 3, None), +- ), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 16), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 12, 1, 16))], +- [], +- None, +- None, +- [("TypeVar", (1, 6, 1, 7), "T", None, None)], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 26), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 22, 1, 26))], +- [], +- None, +- None, +- [ +- ("TypeVar", (1, 6, 1, 7), "T", None, None), +- ("TypeVarTuple", (1, 9, 1, 12), "Ts", None), +- ("ParamSpec", (1, 14, 1, 17), "P", None), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 31), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 27, 1, 31))], +- [], +- None, +- None, +- [ +- ( +- "TypeVar", +- (1, 6, 1, 12), +- "T", +- ("Name", (1, 9, 1, 12), "int", ("Load",)), +- None, +- ), +- ("TypeVarTuple", (1, 14, 1, 17), "Ts", None), +- ("ParamSpec", (1, 19, 1, 22), "P", None), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 38), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 34, 1, 38))], +- [], +- None, +- None, +- [ +- ( +- "TypeVar", +- (1, 6, 1, 19), +- "T", +- ( +- "Tuple", +- (1, 9, 1, 19), +- [ +- ("Name", (1, 10, 1, 13), "int", ("Load",)), +- ("Name", (1, 15, 1, 18), "str", ("Load",)), +- ], +- ("Load",), +- ), +- None, +- ), +- ("TypeVarTuple", (1, 21, 1, 24), "Ts", None), +- ("ParamSpec", (1, 26, 1, 29), "P", None), +- ], +- ) +- ], +- [], +- ), +- ( +- "Module", +- [ +- ( +- "FunctionDef", +- (1, 0, 1, 43), +- "f", +- ("arguments", [], [], None, [], [], None, []), +- [("Pass", (1, 39, 1, 43))], +- [], +- None, +- None, +- [ +- ( +- "TypeVar", +- (1, 6, 1, 16), +- "T", +- ("Name", (1, 9, 1, 12), "int", ("Load",)), +- ("Constant", (1, 15, 1, 16), 1, None), +- ), +- ( +- "TypeVarTuple", +- (1, 18, 1, 25), +- "Ts", +- ("Constant", (1, 24, 1, 25), 2, None), +- ), +- ( +- "ParamSpec", +- (1, 27, 1, 34), +- "P", +- ("Constant", (1, 33, 1, 34), 3, None), +- ), +- ], +- ) +- ], +- [], +- ), ++('Module', [('Expr', (1, 0, 1, 4), ('Constant', (1, 0, 1, 4), None, None))], []), ++('Module', [('Expr', (1, 0, 1, 18), ('Constant', (1, 0, 1, 18), 'module docstring', None))], []), ++('Module', [('FunctionDef', (1, 0, 1, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 9, 1, 13))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 29), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (1, 9, 1, 29), ('Constant', (1, 9, 1, 29), 'function docstring', None))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 14), 'f', ('arguments', [], [('arg', (1, 6, 1, 7), 'a', None, None)], None, [], [], None, []), [('Pass', (1, 10, 1, 14))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 16), 'f', ('arguments', [], [('arg', (1, 6, 1, 7), 'a', None, None)], None, [], [], None, [('Constant', (1, 8, 1, 9), 0, None)]), [('Pass', (1, 12, 1, 16))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 18), 'f', ('arguments', [], [], ('arg', (1, 7, 1, 11), 'args', None, None), [], [], None, []), [('Pass', (1, 14, 1, 18))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 23), 'f', ('arguments', [], [], ('arg', (1, 7, 1, 16), 'args', ('Starred', (1, 13, 1, 16), ('Name', (1, 14, 1, 16), 'Ts', ('Load',)), ('Load',)), None), [], [], None, []), [('Pass', (1, 19, 1, 23))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 36), 'f', ('arguments', [], [], ('arg', (1, 7, 1, 29), 'args', ('Starred', (1, 13, 1, 29), ('Subscript', (1, 14, 1, 29), ('Name', (1, 14, 1, 19), 'tuple', ('Load',)), ('Tuple', (1, 20, 1, 28), [('Name', (1, 20, 1, 23), 'int', ('Load',)), ('Constant', (1, 25, 1, 28), Ellipsis, None)], ('Load',)), ('Load',)), ('Load',)), None), [], [], None, []), [('Pass', (1, 32, 1, 36))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 36), 'f', ('arguments', [], [], ('arg', (1, 7, 1, 29), 'args', ('Starred', (1, 13, 1, 29), ('Subscript', (1, 14, 1, 29), ('Name', (1, 14, 1, 19), 'tuple', ('Load',)), ('Tuple', (1, 20, 1, 28), [('Name', (1, 20, 1, 23), 'int', ('Load',)), ('Starred', (1, 25, 1, 28), ('Name', (1, 26, 1, 28), 'Ts', ('Load',)), ('Load',))], ('Load',)), ('Load',)), ('Load',)), None), [], [], None, []), [('Pass', (1, 32, 1, 36))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 21), 'f', ('arguments', [], [], None, [], [], ('arg', (1, 8, 1, 14), 'kwargs', None, None), []), [('Pass', (1, 17, 1, 21))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 71), 'f', ('arguments', [], [('arg', (1, 6, 1, 7), 'a', None, None), ('arg', (1, 9, 1, 10), 'b', None, None), ('arg', (1, 14, 1, 15), 'c', None, None), ('arg', (1, 22, 1, 23), 'd', None, None), ('arg', (1, 28, 1, 29), 'e', None, None)], ('arg', (1, 35, 1, 39), 'args', None, None), [('arg', (1, 41, 1, 42), 'f', None, None)], [('Constant', (1, 43, 1, 45), 42, None)], ('arg', (1, 49, 1, 55), 'kwargs', None, None), [('Constant', (1, 11, 1, 12), 1, None), ('Constant', (1, 16, 1, 20), None, None), ('List', (1, 24, 1, 26), [], ('Load',)), ('Dict', (1, 30, 1, 32), [], [])]), [('Expr', (1, 58, 1, 71), ('Constant', (1, 58, 1, 71), 'doc for f()', None))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 27), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 23, 1, 27))], [], ('Subscript', (1, 11, 1, 21), ('Name', (1, 11, 1, 16), 'tuple', ('Load',)), ('Tuple', (1, 17, 1, 20), [('Starred', (1, 17, 1, 20), ('Name', (1, 18, 1, 20), 'Ts', ('Load',)), ('Load',))], ('Load',)), ('Load',)), None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 32), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 28, 1, 32))], [], ('Subscript', (1, 11, 1, 26), ('Name', (1, 11, 1, 16), 'tuple', ('Load',)), ('Tuple', (1, 17, 1, 25), [('Name', (1, 17, 1, 20), 'int', ('Load',)), ('Starred', (1, 22, 1, 25), ('Name', (1, 23, 1, 25), 'Ts', ('Load',)), ('Load',))], ('Load',)), ('Load',)), None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 45), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 41, 1, 45))], [], ('Subscript', (1, 11, 1, 39), ('Name', (1, 11, 1, 16), 'tuple', ('Load',)), ('Tuple', (1, 17, 1, 38), [('Name', (1, 17, 1, 20), 'int', ('Load',)), ('Starred', (1, 22, 1, 38), ('Subscript', (1, 23, 1, 38), ('Name', (1, 23, 1, 28), 'tuple', ('Load',)), ('Tuple', (1, 29, 1, 37), [('Name', (1, 29, 1, 32), 'int', ('Load',)), ('Constant', (1, 34, 1, 37), Ellipsis, None)], ('Load',)), ('Load',)), ('Load',))], ('Load',)), ('Load',)), None, [])], []), ++('Module', [('ClassDef', (1, 0, 1, 12), 'C', [], [], [('Pass', (1, 8, 1, 12))], [], [])], []), ++('Module', [('ClassDef', (1, 0, 1, 32), 'C', [], [], [('Expr', (1, 9, 1, 32), ('Constant', (1, 9, 1, 32), 'docstring for class C', None))], [], [])], []), ++('Module', [('ClassDef', (1, 0, 1, 21), 'C', [('Name', (1, 8, 1, 14), 'object', ('Load',))], [], [('Pass', (1, 17, 1, 21))], [], [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 16), 'f', ('arguments', [], [], None, [], [], None, []), [('Return', (1, 8, 1, 16), ('Constant', (1, 15, 1, 16), 1, None))], [], None, None, [])], []), ++('Module', [('Delete', (1, 0, 1, 5), [('Name', (1, 4, 1, 5), 'v', ('Del',))])], []), ++('Module', [('Assign', (1, 0, 1, 5), [('Name', (1, 0, 1, 1), 'v', ('Store',))], ('Constant', (1, 4, 1, 5), 1, None), None)], []), ++('Module', [('Assign', (1, 0, 1, 7), [('Tuple', (1, 0, 1, 3), [('Name', (1, 0, 1, 1), 'a', ('Store',)), ('Name', (1, 2, 1, 3), 'b', ('Store',))], ('Store',))], ('Name', (1, 6, 1, 7), 'c', ('Load',)), None)], []), ++('Module', [('Assign', (1, 0, 1, 9), [('Tuple', (1, 0, 1, 5), [('Name', (1, 1, 1, 2), 'a', ('Store',)), ('Name', (1, 3, 1, 4), 'b', ('Store',))], ('Store',))], ('Name', (1, 8, 1, 9), 'c', ('Load',)), None)], []), ++('Module', [('Assign', (1, 0, 1, 9), [('List', (1, 0, 1, 5), [('Name', (1, 1, 1, 2), 'a', ('Store',)), ('Name', (1, 3, 1, 4), 'b', ('Store',))], ('Store',))], ('Name', (1, 8, 1, 9), 'c', ('Load',)), None)], []), ++('Module', [('AnnAssign', (1, 0, 1, 13), ('Name', (1, 0, 1, 1), 'x', ('Store',)), ('Subscript', (1, 3, 1, 13), ('Name', (1, 3, 1, 8), 'tuple', ('Load',)), ('Tuple', (1, 9, 1, 12), [('Starred', (1, 9, 1, 12), ('Name', (1, 10, 1, 12), 'Ts', ('Load',)), ('Load',))], ('Load',)), ('Load',)), None, 1)], []), ++('Module', [('AnnAssign', (1, 0, 1, 18), ('Name', (1, 0, 1, 1), 'x', ('Store',)), ('Subscript', (1, 3, 1, 18), ('Name', (1, 3, 1, 8), 'tuple', ('Load',)), ('Tuple', (1, 9, 1, 17), [('Name', (1, 9, 1, 12), 'int', ('Load',)), ('Starred', (1, 14, 1, 17), ('Name', (1, 15, 1, 17), 'Ts', ('Load',)), ('Load',))], ('Load',)), ('Load',)), None, 1)], []), ++('Module', [('AnnAssign', (1, 0, 1, 31), ('Name', (1, 0, 1, 1), 'x', ('Store',)), ('Subscript', (1, 3, 1, 31), ('Name', (1, 3, 1, 8), 'tuple', ('Load',)), ('Tuple', (1, 9, 1, 30), [('Name', (1, 9, 1, 12), 'int', ('Load',)), ('Starred', (1, 14, 1, 30), ('Subscript', (1, 15, 1, 30), ('Name', (1, 15, 1, 20), 'tuple', ('Load',)), ('Tuple', (1, 21, 1, 29), [('Name', (1, 21, 1, 24), 'str', ('Load',)), ('Constant', (1, 26, 1, 29), Ellipsis, None)], ('Load',)), ('Load',)), ('Load',))], ('Load',)), ('Load',)), None, 1)], []), ++('Module', [('AugAssign', (1, 0, 1, 6), ('Name', (1, 0, 1, 1), 'v', ('Store',)), ('Add',), ('Constant', (1, 5, 1, 6), 1, None))], []), ++('Module', [('For', (1, 0, 1, 15), ('Name', (1, 4, 1, 5), 'v', ('Store',)), ('Name', (1, 9, 1, 10), 'v', ('Load',)), [('Pass', (1, 11, 1, 15))], [], None)], []), ++('Module', [('While', (1, 0, 1, 12), ('Name', (1, 6, 1, 7), 'v', ('Load',)), [('Pass', (1, 8, 1, 12))], [])], []), ++('Module', [('If', (1, 0, 1, 9), ('Name', (1, 3, 1, 4), 'v', ('Load',)), [('Pass', (1, 5, 1, 9))], [])], []), ++('Module', [('If', (1, 0, 4, 6), ('Name', (1, 3, 1, 4), 'a', ('Load',)), [('Pass', (2, 2, 2, 6))], [('If', (3, 0, 4, 6), ('Name', (3, 5, 3, 6), 'b', ('Load',)), [('Pass', (4, 2, 4, 6))], [])])], []), ++('Module', [('If', (1, 0, 6, 6), ('Name', (1, 3, 1, 4), 'a', ('Load',)), [('Pass', (2, 2, 2, 6))], [('If', (3, 0, 6, 6), ('Name', (3, 5, 3, 6), 'b', ('Load',)), [('Pass', (4, 2, 4, 6))], [('Pass', (6, 2, 6, 6))])])], []), ++('Module', [('With', (1, 0, 1, 17), [('withitem', ('Name', (1, 5, 1, 6), 'x', ('Load',)), ('Name', (1, 10, 1, 11), 'y', ('Store',)))], [('Pass', (1, 13, 1, 17))], None)], []), ++('Module', [('With', (1, 0, 1, 25), [('withitem', ('Name', (1, 5, 1, 6), 'x', ('Load',)), ('Name', (1, 10, 1, 11), 'y', ('Store',))), ('withitem', ('Name', (1, 13, 1, 14), 'z', ('Load',)), ('Name', (1, 18, 1, 19), 'q', ('Store',)))], [('Pass', (1, 21, 1, 25))], None)], []), ++('Module', [('With', (1, 0, 1, 19), [('withitem', ('Name', (1, 6, 1, 7), 'x', ('Load',)), ('Name', (1, 11, 1, 12), 'y', ('Store',)))], [('Pass', (1, 15, 1, 19))], None)], []), ++('Module', [('With', (1, 0, 1, 17), [('withitem', ('Name', (1, 6, 1, 7), 'x', ('Load',)), None), ('withitem', ('Name', (1, 9, 1, 10), 'y', ('Load',)), None)], [('Pass', (1, 13, 1, 17))], None)], []), ++('Module', [('Raise', (1, 0, 1, 25), ('Call', (1, 6, 1, 25), ('Name', (1, 6, 1, 15), 'Exception', ('Load',)), [('Constant', (1, 16, 1, 24), 'string', None)], []), None)], []), ++('Module', [('Try', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [('ExceptHandler', (3, 0, 4, 6), ('Name', (3, 7, 3, 16), 'Exception', ('Load',)), None, [('Pass', (4, 2, 4, 6))])], [], [])], []), ++('Module', [('Try', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [], [], [('Pass', (4, 2, 4, 6))])], []), ++('Module', [('TryStar', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [('ExceptHandler', (3, 0, 4, 6), ('Name', (3, 8, 3, 17), 'Exception', ('Load',)), None, [('Pass', (4, 2, 4, 6))])], [], [])], []), ++('Module', [('Assert', (1, 0, 1, 8), ('Name', (1, 7, 1, 8), 'v', ('Load',)), None)], []), ++('Module', [('Import', (1, 0, 1, 10), [('alias', (1, 7, 1, 10), 'sys', None)])], []), ++('Module', [('ImportFrom', (1, 0, 1, 17), 'sys', [('alias', (1, 16, 1, 17), 'v', None)], 0)], []), ++('Module', [('Global', (1, 0, 1, 8), ['v'])], []), ++('Module', [('Expr', (1, 0, 1, 1), ('Constant', (1, 0, 1, 1), 1, None))], []), ++('Module', [('Pass', (1, 0, 1, 4))], []), ++('Module', [('For', (1, 0, 1, 16), ('Name', (1, 4, 1, 5), 'v', ('Store',)), ('Name', (1, 9, 1, 10), 'v', ('Load',)), [('Break', (1, 11, 1, 16))], [], None)], []), ++('Module', [('For', (1, 0, 1, 19), ('Name', (1, 4, 1, 5), 'v', ('Store',)), ('Name', (1, 9, 1, 10), 'v', ('Load',)), [('Continue', (1, 11, 1, 19))], [], None)], []), ++('Module', [('For', (1, 0, 1, 18), ('Tuple', (1, 4, 1, 7), [('Name', (1, 4, 1, 5), 'a', ('Store',)), ('Name', (1, 6, 1, 7), 'b', ('Store',))], ('Store',)), ('Name', (1, 11, 1, 12), 'c', ('Load',)), [('Pass', (1, 14, 1, 18))], [], None)], []), ++('Module', [('For', (1, 0, 1, 20), ('Tuple', (1, 4, 1, 9), [('Name', (1, 5, 1, 6), 'a', ('Store',)), ('Name', (1, 7, 1, 8), 'b', ('Store',))], ('Store',)), ('Name', (1, 13, 1, 14), 'c', ('Load',)), [('Pass', (1, 16, 1, 20))], [], None)], []), ++('Module', [('For', (1, 0, 1, 20), ('List', (1, 4, 1, 9), [('Name', (1, 5, 1, 6), 'a', ('Store',)), ('Name', (1, 7, 1, 8), 'b', ('Store',))], ('Store',)), ('Name', (1, 13, 1, 14), 'c', ('Load',)), [('Pass', (1, 16, 1, 20))], [], None)], []), ++('Module', [('Expr', (1, 0, 11, 5), ('GeneratorExp', (1, 0, 11, 5), ('Tuple', (2, 4, 6, 5), [('Name', (3, 4, 3, 6), 'Aa', ('Load',)), ('Name', (5, 7, 5, 9), 'Bb', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (8, 4, 10, 6), [('Name', (8, 4, 8, 6), 'Aa', ('Store',)), ('Name', (10, 4, 10, 6), 'Bb', ('Store',))], ('Store',)), ('Name', (10, 10, 10, 12), 'Cc', ('Load',)), [], 0)]))], []), ++('Module', [('Expr', (1, 0, 1, 34), ('DictComp', (1, 0, 1, 34), ('Name', (1, 1, 1, 2), 'a', ('Load',)), ('Name', (1, 5, 1, 6), 'b', ('Load',)), [('comprehension', ('Name', (1, 11, 1, 12), 'w', ('Store',)), ('Name', (1, 16, 1, 17), 'x', ('Load',)), [], 0), ('comprehension', ('Name', (1, 22, 1, 23), 'm', ('Store',)), ('Name', (1, 27, 1, 28), 'p', ('Load',)), [('Name', (1, 32, 1, 33), 'g', ('Load',))], 0)]))], []), ++('Module', [('Expr', (1, 0, 1, 20), ('DictComp', (1, 0, 1, 20), ('Name', (1, 1, 1, 2), 'a', ('Load',)), ('Name', (1, 5, 1, 6), 'b', ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'v', ('Store',)), ('Name', (1, 13, 1, 14), 'w', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'x', ('Load',)), [], 0)]))], []), ++('Module', [('Expr', (1, 0, 1, 19), ('SetComp', (1, 0, 1, 19), ('Name', (1, 1, 1, 2), 'r', ('Load',)), [('comprehension', ('Name', (1, 7, 1, 8), 'l', ('Store',)), ('Name', (1, 12, 1, 13), 'x', ('Load',)), [('Name', (1, 17, 1, 18), 'g', ('Load',))], 0)]))], []), ++('Module', [('Expr', (1, 0, 1, 16), ('SetComp', (1, 0, 1, 16), ('Name', (1, 1, 1, 2), 'r', ('Load',)), [('comprehension', ('Tuple', (1, 7, 1, 10), [('Name', (1, 7, 1, 8), 'l', ('Store',)), ('Name', (1, 9, 1, 10), 'm', ('Store',))], ('Store',)), ('Name', (1, 14, 1, 15), 'x', ('Load',)), [], 0)]))], []), ++('Module', [('AsyncFunctionDef', (1, 0, 3, 18), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (2, 1, 2, 17), ('Constant', (2, 1, 2, 17), 'async function', None)), ('Expr', (3, 1, 3, 18), ('Await', (3, 1, 3, 18), ('Call', (3, 7, 3, 18), ('Name', (3, 7, 3, 16), 'something', ('Load',)), [], [])))], [], None, None, [])], []), ++('Module', [('AsyncFunctionDef', (1, 0, 3, 8), 'f', ('arguments', [], [], None, [], [], None, []), [('AsyncFor', (2, 1, 3, 8), ('Name', (2, 11, 2, 12), 'e', ('Store',)), ('Name', (2, 16, 2, 17), 'i', ('Load',)), [('Expr', (2, 19, 2, 20), ('Constant', (2, 19, 2, 20), 1, None))], [('Expr', (3, 7, 3, 8), ('Constant', (3, 7, 3, 8), 2, None))], None)], [], None, None, [])], []), ++('Module', [('AsyncFunctionDef', (1, 0, 2, 21), 'f', ('arguments', [], [], None, [], [], None, []), [('AsyncWith', (2, 1, 2, 21), [('withitem', ('Name', (2, 12, 2, 13), 'a', ('Load',)), ('Name', (2, 17, 2, 18), 'b', ('Store',)))], [('Expr', (2, 20, 2, 21), ('Constant', (2, 20, 2, 21), 1, None))], None)], [], None, None, [])], []), ++('Module', [('Expr', (1, 0, 1, 14), ('Dict', (1, 0, 1, 14), [None, ('Constant', (1, 10, 1, 11), 2, None)], [('Dict', (1, 3, 1, 8), [('Constant', (1, 4, 1, 5), 1, None)], [('Constant', (1, 6, 1, 7), 2, None)]), ('Constant', (1, 12, 1, 13), 3, None)]))], []), ++('Module', [('Expr', (1, 0, 1, 12), ('Set', (1, 0, 1, 12), [('Starred', (1, 1, 1, 8), ('Set', (1, 2, 1, 8), [('Constant', (1, 3, 1, 4), 1, None), ('Constant', (1, 6, 1, 7), 2, None)]), ('Load',)), ('Constant', (1, 10, 1, 11), 3, None)]))], []), ++('Module', [('AsyncFunctionDef', (1, 0, 2, 21), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (2, 1, 2, 21), ('ListComp', (2, 1, 2, 21), ('Name', (2, 2, 2, 3), 'i', ('Load',)), [('comprehension', ('Name', (2, 14, 2, 15), 'b', ('Store',)), ('Name', (2, 19, 2, 20), 'c', ('Load',)), [], 1)]))], [], None, None, [])], []), ++('Module', [('FunctionDef', (4, 0, 4, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (4, 9, 4, 13))], [('Name', (1, 1, 1, 6), 'deco1', ('Load',)), ('Call', (2, 1, 2, 8), ('Name', (2, 1, 2, 6), 'deco2', ('Load',)), [], []), ('Call', (3, 1, 3, 9), ('Name', (3, 1, 3, 6), 'deco3', ('Load',)), [('Constant', (3, 7, 3, 8), 1, None)], [])], None, None, [])], []), ++('Module', [('AsyncFunctionDef', (4, 0, 4, 19), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (4, 15, 4, 19))], [('Name', (1, 1, 1, 6), 'deco1', ('Load',)), ('Call', (2, 1, 2, 8), ('Name', (2, 1, 2, 6), 'deco2', ('Load',)), [], []), ('Call', (3, 1, 3, 9), ('Name', (3, 1, 3, 6), 'deco3', ('Load',)), [('Constant', (3, 7, 3, 8), 1, None)], [])], None, None, [])], []), ++('Module', [('ClassDef', (4, 0, 4, 13), 'C', [], [], [('Pass', (4, 9, 4, 13))], [('Name', (1, 1, 1, 6), 'deco1', ('Load',)), ('Call', (2, 1, 2, 8), ('Name', (2, 1, 2, 6), 'deco2', ('Load',)), [], []), ('Call', (3, 1, 3, 9), ('Name', (3, 1, 3, 6), 'deco3', ('Load',)), [('Constant', (3, 7, 3, 8), 1, None)], [])], [])], []), ++('Module', [('FunctionDef', (2, 0, 2, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (2, 9, 2, 13))], [('Call', (1, 1, 1, 19), ('Name', (1, 1, 1, 5), 'deco', ('Load',)), [('GeneratorExp', (1, 5, 1, 19), ('Name', (1, 6, 1, 7), 'a', ('Load',)), [('comprehension', ('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 17, 1, 18), 'b', ('Load',)), [], 0)])], [])], None, None, [])], []), ++('Module', [('FunctionDef', (2, 0, 2, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (2, 9, 2, 13))], [('Attribute', (1, 1, 1, 6), ('Attribute', (1, 1, 1, 4), ('Name', (1, 1, 1, 2), 'a', ('Load',)), 'b', ('Load',)), 'c', ('Load',))], None, None, [])], []), ++('Module', [('Expr', (1, 0, 1, 8), ('NamedExpr', (1, 1, 1, 7), ('Name', (1, 1, 1, 2), 'a', ('Store',)), ('Constant', (1, 6, 1, 7), 1, None)))], []), ++('Module', [('FunctionDef', (1, 0, 1, 18), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [], None, [], [], None, []), [('Pass', (1, 14, 1, 18))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 26), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 12, 1, 13), 'c', None, None), ('arg', (1, 15, 1, 16), 'd', None, None), ('arg', (1, 18, 1, 19), 'e', None, None)], None, [], [], None, []), [('Pass', (1, 22, 1, 26))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 29), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 12, 1, 13), 'c', None, None)], None, [('arg', (1, 18, 1, 19), 'd', None, None), ('arg', (1, 21, 1, 22), 'e', None, None)], [None, None], None, []), [('Pass', (1, 25, 1, 29))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 39), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 12, 1, 13), 'c', None, None)], None, [('arg', (1, 18, 1, 19), 'd', None, None), ('arg', (1, 21, 1, 22), 'e', None, None)], [None, None], ('arg', (1, 26, 1, 32), 'kwargs', None, None), []), [('Pass', (1, 35, 1, 39))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 20), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [], None, [], [], None, [('Constant', (1, 8, 1, 9), 1, None)]), [('Pass', (1, 16, 1, 20))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 29), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None), ('arg', (1, 19, 1, 20), 'c', None, None)], None, [], [], None, [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None), ('Constant', (1, 21, 1, 22), 4, None)]), [('Pass', (1, 25, 1, 29))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 32), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [('Constant', (1, 24, 1, 25), 4, None)], None, [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 28, 1, 32))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 30), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [None], None, [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 26, 1, 30))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 42), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [('Constant', (1, 24, 1, 25), 4, None)], ('arg', (1, 29, 1, 35), 'kwargs', None, None), [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 38, 1, 42))], [], None, None, [])], []), ++('Module', [('FunctionDef', (1, 0, 1, 40), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [None], ('arg', (1, 27, 1, 33), 'kwargs', None, None), [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 36, 1, 40))], [], None, None, [])], []), ++('Module', [('TypeAlias', (1, 0, 1, 12), ('Name', (1, 5, 1, 6), 'X', ('Store',)), [], ('Name', (1, 9, 1, 12), 'int', ('Load',)))], []), ++('Module', [('TypeAlias', (1, 0, 1, 15), ('Name', (1, 5, 1, 6), 'X', ('Store',)), [('TypeVar', (1, 7, 1, 8), 'T', None, None)], ('Name', (1, 12, 1, 15), 'int', ('Load',)))], []), ++('Module', [('TypeAlias', (1, 0, 1, 32), ('Name', (1, 5, 1, 6), 'X', ('Store',)), [('TypeVar', (1, 7, 1, 8), 'T', None, None), ('TypeVarTuple', (1, 10, 1, 13), 'Ts', None), ('ParamSpec', (1, 15, 1, 18), 'P', None)], ('Tuple', (1, 22, 1, 32), [('Name', (1, 23, 1, 24), 'T', ('Load',)), ('Name', (1, 26, 1, 28), 'Ts', ('Load',)), ('Name', (1, 30, 1, 31), 'P', ('Load',))], ('Load',)))], []), ++('Module', [('TypeAlias', (1, 0, 1, 37), ('Name', (1, 5, 1, 6), 'X', ('Store',)), [('TypeVar', (1, 7, 1, 13), 'T', ('Name', (1, 10, 1, 13), 'int', ('Load',)), None), ('TypeVarTuple', (1, 15, 1, 18), 'Ts', None), ('ParamSpec', (1, 20, 1, 23), 'P', None)], ('Tuple', (1, 27, 1, 37), [('Name', (1, 28, 1, 29), 'T', ('Load',)), ('Name', (1, 31, 1, 33), 'Ts', ('Load',)), ('Name', (1, 35, 1, 36), 'P', ('Load',))], ('Load',)))], []), ++('Module', [('TypeAlias', (1, 0, 1, 44), ('Name', (1, 5, 1, 6), 'X', ('Store',)), [('TypeVar', (1, 7, 1, 20), 'T', ('Tuple', (1, 10, 1, 20), [('Name', (1, 11, 1, 14), 'int', ('Load',)), ('Name', (1, 16, 1, 19), 'str', ('Load',))], ('Load',)), None), ('TypeVarTuple', (1, 22, 1, 25), 'Ts', None), ('ParamSpec', (1, 27, 1, 30), 'P', None)], ('Tuple', (1, 34, 1, 44), [('Name', (1, 35, 1, 36), 'T', ('Load',)), ('Name', (1, 38, 1, 40), 'Ts', ('Load',)), ('Name', (1, 42, 1, 43), 'P', ('Load',))], ('Load',)))], []), ++('Module', [('TypeAlias', (1, 0, 1, 48), ('Name', (1, 5, 1, 6), 'X', ('Store',)), [('TypeVar', (1, 7, 1, 17), 'T', ('Name', (1, 10, 1, 13), 'int', ('Load',)), ('Constant', (1, 16, 1, 17), 1, None)), ('TypeVarTuple', (1, 19, 1, 26), 'Ts', ('Constant', (1, 25, 1, 26), 2, None)), ('ParamSpec', (1, 28, 1, 34), 'P', ('Constant', (1, 33, 1, 34), 3, None))], ('Tuple', (1, 38, 1, 48), [('Name', (1, 39, 1, 40), 'T', ('Load',)), ('Name', (1, 42, 1, 44), 'Ts', ('Load',)), ('Name', (1, 46, 1, 47), 'P', ('Load',))], ('Load',)))], []), ++('Module', [('ClassDef', (1, 0, 1, 16), 'X', [], [], [('Pass', (1, 12, 1, 16))], [], [('TypeVar', (1, 8, 1, 9), 'T', None, None)])], []), ++('Module', [('ClassDef', (1, 0, 1, 26), 'X', [], [], [('Pass', (1, 22, 1, 26))], [], [('TypeVar', (1, 8, 1, 9), 'T', None, None), ('TypeVarTuple', (1, 11, 1, 14), 'Ts', None), ('ParamSpec', (1, 16, 1, 19), 'P', None)])], []), ++('Module', [('ClassDef', (1, 0, 1, 31), 'X', [], [], [('Pass', (1, 27, 1, 31))], [], [('TypeVar', (1, 8, 1, 14), 'T', ('Name', (1, 11, 1, 14), 'int', ('Load',)), None), ('TypeVarTuple', (1, 16, 1, 19), 'Ts', None), ('ParamSpec', (1, 21, 1, 24), 'P', None)])], []), ++('Module', [('ClassDef', (1, 0, 1, 38), 'X', [], [], [('Pass', (1, 34, 1, 38))], [], [('TypeVar', (1, 8, 1, 21), 'T', ('Tuple', (1, 11, 1, 21), [('Name', (1, 12, 1, 15), 'int', ('Load',)), ('Name', (1, 17, 1, 20), 'str', ('Load',))], ('Load',)), None), ('TypeVarTuple', (1, 23, 1, 26), 'Ts', None), ('ParamSpec', (1, 28, 1, 31), 'P', None)])], []), ++('Module', [('ClassDef', (1, 0, 1, 43), 'X', [], [], [('Pass', (1, 39, 1, 43))], [], [('TypeVar', (1, 8, 1, 18), 'T', ('Name', (1, 11, 1, 14), 'int', ('Load',)), ('Constant', (1, 17, 1, 18), 1, None)), ('TypeVarTuple', (1, 20, 1, 27), 'Ts', ('Constant', (1, 26, 1, 27), 2, None)), ('ParamSpec', (1, 29, 1, 36), 'P', ('Constant', (1, 35, 1, 36), 3, None))])], []), ++('Module', [('FunctionDef', (1, 0, 1, 16), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 12, 1, 16))], [], None, None, [('TypeVar', (1, 6, 1, 7), 'T', None, None)])], []), ++('Module', [('FunctionDef', (1, 0, 1, 26), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 22, 1, 26))], [], None, None, [('TypeVar', (1, 6, 1, 7), 'T', None, None), ('TypeVarTuple', (1, 9, 1, 12), 'Ts', None), ('ParamSpec', (1, 14, 1, 17), 'P', None)])], []), ++('Module', [('FunctionDef', (1, 0, 1, 31), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 27, 1, 31))], [], None, None, [('TypeVar', (1, 6, 1, 12), 'T', ('Name', (1, 9, 1, 12), 'int', ('Load',)), None), ('TypeVarTuple', (1, 14, 1, 17), 'Ts', None), ('ParamSpec', (1, 19, 1, 22), 'P', None)])], []), ++('Module', [('FunctionDef', (1, 0, 1, 38), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 34, 1, 38))], [], None, None, [('TypeVar', (1, 6, 1, 19), 'T', ('Tuple', (1, 9, 1, 19), [('Name', (1, 10, 1, 13), 'int', ('Load',)), ('Name', (1, 15, 1, 18), 'str', ('Load',))], ('Load',)), None), ('TypeVarTuple', (1, 21, 1, 24), 'Ts', None), ('ParamSpec', (1, 26, 1, 29), 'P', None)])], []), ++('Module', [('FunctionDef', (1, 0, 1, 43), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 39, 1, 43))], [], None, None, [('TypeVar', (1, 6, 1, 16), 'T', ('Name', (1, 9, 1, 12), 'int', ('Load',)), ('Constant', (1, 15, 1, 16), 1, None)), ('TypeVarTuple', (1, 18, 1, 25), 'Ts', ('Constant', (1, 24, 1, 25), 2, None)), ('ParamSpec', (1, 27, 1, 34), 'P', ('Constant', (1, 33, 1, 34), 3, None))])], []), + ] + single_results = [ +- ( +- "Interactive", +- [ +- ( +- "Expr", +- (1, 0, 1, 3), +- ( +- "BinOp", +- (1, 0, 1, 3), +- ("Constant", (1, 0, 1, 1), 1, None), +- ("Add",), +- ("Constant", (1, 2, 1, 3), 2, None), +- ), +- ) +- ], +- ), ++('Interactive', [('Expr', (1, 0, 1, 3), ('BinOp', (1, 0, 1, 3), ('Constant', (1, 0, 1, 1), 1, None), ('Add',), ('Constant', (1, 2, 1, 3), 2, None)))]), + ] + eval_results = [ +- ("Expression", ("Constant", (1, 0, 1, 4), None, None)), +- ( +- "Expression", +- ( +- "BoolOp", +- (1, 0, 1, 7), +- ("And",), +- [ +- ("Name", (1, 0, 1, 1), "a", ("Load",)), +- ("Name", (1, 6, 1, 7), "b", ("Load",)), +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "BinOp", +- (1, 0, 1, 5), +- ("Name", (1, 0, 1, 1), "a", ("Load",)), +- ("Add",), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ), +- ), +- ( +- "Expression", +- ("UnaryOp", (1, 0, 1, 5), ("Not",), ("Name", (1, 4, 1, 5), "v", ("Load",))), +- ), +- ( +- "Expression", +- ( +- "Lambda", +- (1, 0, 1, 11), +- ("arguments", [], [], None, [], [], None, []), +- ("Constant", (1, 7, 1, 11), None, None), +- ), +- ), +- ( +- "Expression", +- ( +- "Dict", +- (1, 0, 1, 7), +- [("Constant", (1, 2, 1, 3), 1, None)], +- [("Constant", (1, 4, 1, 5), 2, None)], +- ), +- ), +- ("Expression", ("Dict", (1, 0, 1, 2), [], [])), +- ("Expression", ("Set", (1, 0, 1, 7), [("Constant", (1, 1, 1, 5), None, None)])), +- ( +- "Expression", +- ( +- "Dict", +- (1, 0, 5, 6), +- [("Constant", (2, 6, 2, 7), 1, None)], +- [("Constant", (4, 10, 4, 11), 2, None)], +- ), +- ), +- ( +- "Expression", +- ( +- "ListComp", +- (1, 0, 1, 19), +- ("Name", (1, 1, 1, 2), "a", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (1, 7, 1, 8), "b", ("Store",)), +- ("Name", (1, 12, 1, 13), "c", ("Load",)), +- [("Name", (1, 17, 1, 18), "d", ("Load",))], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "GeneratorExp", +- (1, 0, 1, 19), +- ("Name", (1, 1, 1, 2), "a", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (1, 7, 1, 8), "b", ("Store",)), +- ("Name", (1, 12, 1, 13), "c", ("Load",)), +- [("Name", (1, 17, 1, 18), "d", ("Load",))], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "ListComp", +- (1, 0, 1, 20), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 14), +- [ +- ("Name", (1, 11, 1, 12), "a", ("Store",)), +- ("Name", (1, 13, 1, 14), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 18, 1, 19), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "ListComp", +- (1, 0, 1, 22), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 16), +- [ +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 14, 1, 15), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 20, 1, 21), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "ListComp", +- (1, 0, 1, 22), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "List", +- (1, 11, 1, 16), +- [ +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 14, 1, 15), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 20, 1, 21), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "SetComp", +- (1, 0, 1, 20), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 14), +- [ +- ("Name", (1, 11, 1, 12), "a", ("Store",)), +- ("Name", (1, 13, 1, 14), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 18, 1, 19), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "SetComp", +- (1, 0, 1, 22), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 16), +- [ +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 14, 1, 15), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 20, 1, 21), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "SetComp", +- (1, 0, 1, 22), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "List", +- (1, 11, 1, 16), +- [ +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 14, 1, 15), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 20, 1, 21), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "GeneratorExp", +- (1, 0, 1, 20), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 14), +- [ +- ("Name", (1, 11, 1, 12), "a", ("Store",)), +- ("Name", (1, 13, 1, 14), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 18, 1, 19), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "GeneratorExp", +- (1, 0, 1, 22), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "Tuple", +- (1, 11, 1, 16), +- [ +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 14, 1, 15), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 20, 1, 21), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "GeneratorExp", +- (1, 0, 1, 22), +- ( +- "Tuple", +- (1, 1, 1, 6), +- [ +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- ("Name", (1, 4, 1, 5), "b", ("Load",)), +- ], +- ("Load",), +- ), +- [ +- ( +- "comprehension", +- ( +- "List", +- (1, 11, 1, 16), +- [ +- ("Name", (1, 12, 1, 13), "a", ("Store",)), +- ("Name", (1, 14, 1, 15), "b", ("Store",)), +- ], +- ("Store",), +- ), +- ("Name", (1, 20, 1, 21), "c", ("Load",)), +- [], +- 0, +- ) +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "Compare", +- (1, 0, 1, 9), +- ("Constant", (1, 0, 1, 1), 1, None), +- [("Lt",), ("Lt",)], +- [("Constant", (1, 4, 1, 5), 2, None), ("Constant", (1, 8, 1, 9), 3, None)], +- ), +- ), +- ( +- "Expression", +- ( +- "Call", +- (1, 0, 1, 17), +- ("Name", (1, 0, 1, 1), "f", ("Load",)), +- [ +- ("Constant", (1, 2, 1, 3), 1, None), +- ("Constant", (1, 4, 1, 5), 2, None), +- ( +- "Starred", +- (1, 10, 1, 12), +- ("Name", (1, 11, 1, 12), "d", ("Load",)), +- ("Load",), +- ), +- ], +- [ +- ("keyword", (1, 6, 1, 9), "c", ("Constant", (1, 8, 1, 9), 3, None)), +- ( +- "keyword", +- (1, 13, 1, 16), +- None, +- ("Name", (1, 15, 1, 16), "e", ("Load",)), +- ), +- ], +- ), +- ), +- ( +- "Expression", +- ( +- "Call", +- (1, 0, 1, 10), +- ("Name", (1, 0, 1, 1), "f", ("Load",)), +- [ +- ( +- "Starred", +- (1, 2, 1, 9), +- ( +- "List", +- (1, 3, 1, 9), +- [ +- ("Constant", (1, 4, 1, 5), 0, None), +- ("Constant", (1, 7, 1, 8), 1, None), +- ], +- ("Load",), +- ), +- ("Load",), +- ) +- ], +- [], +- ), +- ), +- ( +- "Expression", +- ( +- "Call", +- (1, 0, 1, 15), +- ("Name", (1, 0, 1, 1), "f", ("Load",)), +- [ +- ( +- "GeneratorExp", +- (1, 1, 1, 15), +- ("Name", (1, 2, 1, 3), "a", ("Load",)), +- [ +- ( +- "comprehension", +- ("Name", (1, 8, 1, 9), "a", ("Store",)), +- ("Name", (1, 13, 1, 14), "b", ("Load",)), +- [], +- 0, +- ) +- ], +- ) +- ], +- [], +- ), +- ), +- ("Expression", ("Constant", (1, 0, 1, 2), 10, None)), +- ("Expression", ("Constant", (1, 0, 1, 8), "string", None)), +- ( +- "Expression", +- ( +- "Attribute", +- (1, 0, 1, 3), +- ("Name", (1, 0, 1, 1), "a", ("Load",)), +- "b", +- ("Load",), +- ), +- ), +- ( +- "Expression", +- ( +- "Subscript", +- (1, 0, 1, 6), +- ("Name", (1, 0, 1, 1), "a", ("Load",)), +- ( +- "Slice", +- (1, 2, 1, 5), +- ("Name", (1, 2, 1, 3), "b", ("Load",)), +- ("Name", (1, 4, 1, 5), "c", ("Load",)), +- None, +- ), +- ("Load",), +- ), +- ), +- ("Expression", ("Name", (1, 0, 1, 1), "v", ("Load",))), +- ( +- "Expression", +- ( +- "List", +- (1, 0, 1, 7), +- [ +- ("Constant", (1, 1, 1, 2), 1, None), +- ("Constant", (1, 3, 1, 4), 2, None), +- ("Constant", (1, 5, 1, 6), 3, None), +- ], +- ("Load",), +- ), +- ), +- ("Expression", ("List", (1, 0, 1, 2), [], ("Load",))), +- ( +- "Expression", +- ( +- "Tuple", +- (1, 0, 1, 5), +- [ +- ("Constant", (1, 0, 1, 1), 1, None), +- ("Constant", (1, 2, 1, 3), 2, None), +- ("Constant", (1, 4, 1, 5), 3, None), +- ], +- ("Load",), +- ), +- ), +- ( +- "Expression", +- ( +- "Tuple", +- (1, 0, 1, 7), +- [ +- ("Constant", (1, 1, 1, 2), 1, None), +- ("Constant", (1, 3, 1, 4), 2, None), +- ("Constant", (1, 5, 1, 6), 3, None), +- ], +- ("Load",), +- ), +- ), +- ("Expression", ("Tuple", (1, 0, 1, 2), [], ("Load",))), +- ( +- "Expression", +- ( +- "Call", +- (1, 0, 1, 17), +- ( +- "Attribute", +- (1, 0, 1, 7), +- ( +- "Attribute", +- (1, 0, 1, 5), +- ( +- "Attribute", +- (1, 0, 1, 3), +- ("Name", (1, 0, 1, 1), "a", ("Load",)), +- "b", +- ("Load",), +- ), +- "c", +- ("Load",), +- ), +- "d", +- ("Load",), +- ), +- [ +- ( +- "Subscript", +- (1, 8, 1, 16), +- ( +- "Attribute", +- (1, 8, 1, 11), +- ("Name", (1, 8, 1, 9), "a", ("Load",)), +- "b", +- ("Load",), +- ), +- ( +- "Slice", +- (1, 12, 1, 15), +- ("Constant", (1, 12, 1, 13), 1, None), +- ("Constant", (1, 14, 1, 15), 2, None), +- None, +- ), +- ("Load",), +- ) +- ], +- [], +- ), +- ), ++('Expression', ('Constant', (1, 0, 1, 4), None, None)), ++('Expression', ('BoolOp', (1, 0, 1, 7), ('And',), [('Name', (1, 0, 1, 1), 'a', ('Load',)), ('Name', (1, 6, 1, 7), 'b', ('Load',))])), ++('Expression', ('BinOp', (1, 0, 1, 5), ('Name', (1, 0, 1, 1), 'a', ('Load',)), ('Add',), ('Name', (1, 4, 1, 5), 'b', ('Load',)))), ++('Expression', ('UnaryOp', (1, 0, 1, 5), ('Not',), ('Name', (1, 4, 1, 5), 'v', ('Load',)))), ++('Expression', ('Lambda', (1, 0, 1, 11), ('arguments', [], [], None, [], [], None, []), ('Constant', (1, 7, 1, 11), None, None))), ++('Expression', ('Dict', (1, 0, 1, 7), [('Constant', (1, 2, 1, 3), 1, None)], [('Constant', (1, 4, 1, 5), 2, None)])), ++('Expression', ('Dict', (1, 0, 1, 2), [], [])), ++('Expression', ('Set', (1, 0, 1, 7), [('Constant', (1, 1, 1, 5), None, None)])), ++('Expression', ('Dict', (1, 0, 5, 6), [('Constant', (2, 6, 2, 7), 1, None)], [('Constant', (4, 10, 4, 11), 2, None)])), ++('Expression', ('ListComp', (1, 0, 1, 19), ('Name', (1, 1, 1, 2), 'a', ('Load',)), [('comprehension', ('Name', (1, 7, 1, 8), 'b', ('Store',)), ('Name', (1, 12, 1, 13), 'c', ('Load',)), [('Name', (1, 17, 1, 18), 'd', ('Load',))], 0)])), ++('Expression', ('GeneratorExp', (1, 0, 1, 19), ('Name', (1, 1, 1, 2), 'a', ('Load',)), [('comprehension', ('Name', (1, 7, 1, 8), 'b', ('Store',)), ('Name', (1, 12, 1, 13), 'c', ('Load',)), [('Name', (1, 17, 1, 18), 'd', ('Load',))], 0)])), ++('Expression', ('ListComp', (1, 0, 1, 20), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'c', ('Load',)), [], 0)])), ++('Expression', ('ListComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])), ++('Expression', ('ListComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])), ++('Expression', ('SetComp', (1, 0, 1, 20), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'c', ('Load',)), [], 0)])), ++('Expression', ('SetComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])), ++('Expression', ('SetComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])), ++('Expression', ('GeneratorExp', (1, 0, 1, 20), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'c', ('Load',)), [], 0)])), ++('Expression', ('GeneratorExp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])), ++('Expression', ('GeneratorExp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])), ++('Expression', ('Compare', (1, 0, 1, 9), ('Constant', (1, 0, 1, 1), 1, None), [('Lt',), ('Lt',)], [('Constant', (1, 4, 1, 5), 2, None), ('Constant', (1, 8, 1, 9), 3, None)])), ++('Expression', ('Call', (1, 0, 1, 17), ('Name', (1, 0, 1, 1), 'f', ('Load',)), [('Constant', (1, 2, 1, 3), 1, None), ('Constant', (1, 4, 1, 5), 2, None), ('Starred', (1, 10, 1, 12), ('Name', (1, 11, 1, 12), 'd', ('Load',)), ('Load',))], [('keyword', (1, 6, 1, 9), 'c', ('Constant', (1, 8, 1, 9), 3, None)), ('keyword', (1, 13, 1, 16), None, ('Name', (1, 15, 1, 16), 'e', ('Load',)))])), ++('Expression', ('Call', (1, 0, 1, 10), ('Name', (1, 0, 1, 1), 'f', ('Load',)), [('Starred', (1, 2, 1, 9), ('List', (1, 3, 1, 9), [('Constant', (1, 4, 1, 5), 0, None), ('Constant', (1, 7, 1, 8), 1, None)], ('Load',)), ('Load',))], [])), ++('Expression', ('Call', (1, 0, 1, 15), ('Name', (1, 0, 1, 1), 'f', ('Load',)), [('GeneratorExp', (1, 1, 1, 15), ('Name', (1, 2, 1, 3), 'a', ('Load',)), [('comprehension', ('Name', (1, 8, 1, 9), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Load',)), [], 0)])], [])), ++('Expression', ('Constant', (1, 0, 1, 2), 10, None)), ++('Expression', ('Constant', (1, 0, 1, 8), 'string', None)), ++('Expression', ('Attribute', (1, 0, 1, 3), ('Name', (1, 0, 1, 1), 'a', ('Load',)), 'b', ('Load',))), ++('Expression', ('Subscript', (1, 0, 1, 6), ('Name', (1, 0, 1, 1), 'a', ('Load',)), ('Slice', (1, 2, 1, 5), ('Name', (1, 2, 1, 3), 'b', ('Load',)), ('Name', (1, 4, 1, 5), 'c', ('Load',)), None), ('Load',))), ++('Expression', ('Name', (1, 0, 1, 1), 'v', ('Load',))), ++('Expression', ('List', (1, 0, 1, 7), [('Constant', (1, 1, 1, 2), 1, None), ('Constant', (1, 3, 1, 4), 2, None), ('Constant', (1, 5, 1, 6), 3, None)], ('Load',))), ++('Expression', ('List', (1, 0, 1, 2), [], ('Load',))), ++('Expression', ('Tuple', (1, 0, 1, 5), [('Constant', (1, 0, 1, 1), 1, None), ('Constant', (1, 2, 1, 3), 2, None), ('Constant', (1, 4, 1, 5), 3, None)], ('Load',))), ++('Expression', ('Tuple', (1, 0, 1, 7), [('Constant', (1, 1, 1, 2), 1, None), ('Constant', (1, 3, 1, 4), 2, None), ('Constant', (1, 5, 1, 6), 3, None)], ('Load',))), ++('Expression', ('Tuple', (1, 0, 1, 2), [], ('Load',))), ++('Expression', ('Call', (1, 0, 1, 17), ('Attribute', (1, 0, 1, 7), ('Attribute', (1, 0, 1, 5), ('Attribute', (1, 0, 1, 3), ('Name', (1, 0, 1, 1), 'a', ('Load',)), 'b', ('Load',)), 'c', ('Load',)), 'd', ('Load',)), [('Subscript', (1, 8, 1, 16), ('Attribute', (1, 8, 1, 11), ('Name', (1, 8, 1, 9), 'a', ('Load',)), 'b', ('Load',)), ('Slice', (1, 12, 1, 15), ('Constant', (1, 12, 1, 13), 1, None), ('Constant', (1, 14, 1, 15), 2, None), None), ('Load',))], [])), + ] + main() +diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-07-26-14-05-51.gh-issue-122300.SVIF-l.rst b/Misc/NEWS.d/next/Core and Builtins/2024-07-26-14-05-51.gh-issue-122300.SVIF-l.rst +new file mode 100644 +index 0000000000..6b58f89247 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2024-07-26-14-05-51.gh-issue-122300.SVIF-l.rst +@@ -0,0 +1,2 @@ ++Preserve AST nodes for f-string with single-element format specifiers. Patch ++by Pablo Galindo +diff --git a/Parser/action_helpers.c b/Parser/action_helpers.c +index 1354ef7505..34f744516c 100644 +--- a/Parser/action_helpers.c ++++ b/Parser/action_helpers.c +@@ -1002,7 +1002,8 @@ _PyPegen_setup_full_format_spec(Parser *p, Token *colon, asdl_expr_seq *spec, in + spec = resized_spec; + } + expr_ty res; +- if (asdl_seq_LEN(spec) == 0) { ++ Py_ssize_t n = asdl_seq_LEN(spec); ++ if (n == 0 || (n == 1 && asdl_seq_GET(spec, 0)->kind == Constant_kind)) { + res = _PyAST_JoinedStr(spec, lineno, col_offset, end_lineno, + end_col_offset, p->arena); + } else { diff --git a/python3.13.spec b/python3.13.spec index 29d448d..5567126 100644 --- a/python3.13.spec +++ b/python3.13.spec @@ -17,7 +17,7 @@ URL: https://www.python.org/ %global prerel b4 %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 2%{?dist} +Release: 3%{?dist} License: Python-2.0.1 @@ -403,6 +403,10 @@ Patch429: 00429-gh-118943-fix-another-race-condition-when-generating-jit_stencil # From https://github.com/python/cpython/pull/122017 Patch432: 00432-account-with-abi_thread-in-test_sysconfig-test_user_similar.patch +# 00433 # 1c8b255f8c5430714b6860058880529a95a6bae7 +# Preserve AST nodes for format specifiers with single elements +Patch433: 00433-preserve-ast-nodes-for-format-specifiers-with-single-elements.patch + # (New patches go here ^^^) # # When adding new patches to "python" and "python3" in Fedora, EL, etc., @@ -1744,6 +1748,10 @@ CheckPython freethreading # ====================================================== %changelog +* Tue Jul 30 2024 Miro Hrončok - 3.13.0~b4-3 +- Preserve AST nodes for f-string with single-element format specifiers +- Fixes https://github.com/python/cpython/issues/122300 + * Tue Jul 23 2024 Miro Hrončok - 3.13.0~b4-2 - Explicitly BuildRequire systemtap-sdt-devel https://fedoraproject.org/wiki/Changes/Separate_dtrace_package