mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-15 17:15:22 +00:00

## Summary Garbage collect ASTs once we are done checking a given file. Queries with a cross-file dependency on the AST will reparse the file on demand. This reduces ty's peak memory usage by ~20-30%. The primary change of this PR is adding a `node_index` field to every AST node, that is assigned by the parser. `ParsedModule` can use this to create a flat index of AST nodes any time the file is parsed (or reparsed). This allows `AstNodeRef` to simply index into the current instance of the `ParsedModule`, instead of storing a pointer directly. The indices are somewhat hackily (using an atomic integer) assigned by the `parsed_module` query instead of by the parser directly. Assigning the indices in source-order in the (recursive) parser turns out to be difficult, and collecting the nodes during semantic indexing is impossible as `SemanticIndex` does not hold onto a specific `ParsedModuleRef`, which the pointers in the flat AST are tied to. This means that we have to do an extra AST traversal to assign and collect the nodes into a flat index, but the small performance impact (~3% on cold runs) seems worth it for the memory savings. Part of https://github.com/astral-sh/ty/issues/214.
1790 lines
112 KiB
Text
1790 lines
112 KiB
Text
---
|
|
source: crates/ruff_python_parser/tests/fixtures.rs
|
|
input_file: crates/ruff_python_parser/resources/valid/statement/try.py
|
|
---
|
|
## AST
|
|
|
|
```
|
|
Module(
|
|
ModModule {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 0..1223,
|
|
body: [
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 0..28,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 9..12,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 9..12,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 13..28,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: None,
|
|
name: None,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 25..28,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 25..28,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 30..106,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 39..42,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 39..42,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 43..74,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 50..60,
|
|
id: Name("Exception1"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 64..65,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 71..74,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 71..74,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 75..106,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 82..92,
|
|
id: Name("Exception2"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 96..97,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 103..106,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 103..106,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 108..184,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 117..120,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 117..120,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 121..151,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 128..137,
|
|
id: Name("Exception"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 141..142,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 148..151,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 148..151,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 152..167,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: None,
|
|
name: None,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 164..167,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 164..167,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 181..184,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 181..184,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 186..228,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 195..198,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 195..198,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 199..214,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: None,
|
|
name: None,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 211..214,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 211..214,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 225..228,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 225..228,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
finalbody: [],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 230..289,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 239..242,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 239..242,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 243..258,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: None,
|
|
name: None,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 255..258,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 255..258,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 269..272,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 269..272,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
finalbody: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 286..289,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 286..289,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 291..320,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 300..303,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 300..303,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [],
|
|
orelse: [],
|
|
finalbody: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 317..320,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 317..320,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 322..365,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 331..334,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 331..334,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [],
|
|
orelse: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 345..348,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 345..348,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
finalbody: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 362..365,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 362..365,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 367..441,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 376..379,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 376..379,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 380..409,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 388..394,
|
|
id: Name("GroupA"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("eg"),
|
|
range: 398..400,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 406..409,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 406..409,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 410..441,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 418..432,
|
|
id: Name("ExceptionGroup"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 438..441,
|
|
value: EllipsisLiteral(
|
|
ExprEllipsisLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 438..441,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [],
|
|
is_star: true,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 443..577,
|
|
body: [
|
|
Raise(
|
|
StmtRaise {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 452..471,
|
|
exc: Some(
|
|
Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 458..471,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 458..468,
|
|
id: Name("ValueError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 468..471,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 469..470,
|
|
value: Int(
|
|
1,
|
|
),
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
),
|
|
cause: None,
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 472..525,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 479..488,
|
|
id: Name("TypeError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 492..493,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 499..525,
|
|
value: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 499..525,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 499..504,
|
|
id: Name("print"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 504..525,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
FString(
|
|
ExprFString {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 505..524,
|
|
value: FStringValue {
|
|
inner: Single(
|
|
FString(
|
|
FString {
|
|
range: 505..524,
|
|
node_index: AtomicNodeIndex(..),
|
|
elements: [
|
|
Literal(
|
|
InterpolatedStringLiteralElement {
|
|
range: 507..514,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: "caught ",
|
|
},
|
|
),
|
|
Interpolation(
|
|
InterpolatedElement {
|
|
range: 514..523,
|
|
node_index: AtomicNodeIndex(..),
|
|
expression: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 515..522,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 515..519,
|
|
id: Name("type"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 519..522,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 520..521,
|
|
id: Name("e"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
debug_text: None,
|
|
conversion: None,
|
|
format_spec: None,
|
|
},
|
|
),
|
|
],
|
|
flags: FStringFlags {
|
|
quote_style: Double,
|
|
prefix: Regular,
|
|
triple_quoted: false,
|
|
},
|
|
},
|
|
),
|
|
),
|
|
},
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 526..577,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 533..540,
|
|
id: Name("OSError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 544..545,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 551..577,
|
|
value: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 551..577,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 551..556,
|
|
id: Name("print"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 556..577,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
FString(
|
|
ExprFString {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 557..576,
|
|
value: FStringValue {
|
|
inner: Single(
|
|
FString(
|
|
FString {
|
|
range: 557..576,
|
|
node_index: AtomicNodeIndex(..),
|
|
elements: [
|
|
Literal(
|
|
InterpolatedStringLiteralElement {
|
|
range: 559..566,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: "caught ",
|
|
},
|
|
),
|
|
Interpolation(
|
|
InterpolatedElement {
|
|
range: 566..575,
|
|
node_index: AtomicNodeIndex(..),
|
|
expression: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 567..574,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 567..571,
|
|
id: Name("type"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 571..574,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 572..573,
|
|
id: Name("e"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
debug_text: None,
|
|
conversion: None,
|
|
format_spec: None,
|
|
},
|
|
),
|
|
],
|
|
flags: FStringFlags {
|
|
quote_style: Double,
|
|
prefix: Regular,
|
|
triple_quoted: false,
|
|
},
|
|
},
|
|
),
|
|
),
|
|
},
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [],
|
|
is_star: false,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 579..831,
|
|
body: [
|
|
Raise(
|
|
StmtRaise {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 588..669,
|
|
exc: Some(
|
|
Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 594..669,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 594..608,
|
|
id: Name("ExceptionGroup"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 608..669,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
StringLiteral(
|
|
ExprStringLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 609..613,
|
|
value: StringLiteralValue {
|
|
inner: Single(
|
|
StringLiteral {
|
|
range: 609..613,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: "eg",
|
|
flags: StringLiteralFlags {
|
|
quote_style: Double,
|
|
prefix: Empty,
|
|
triple_quoted: false,
|
|
},
|
|
},
|
|
),
|
|
},
|
|
},
|
|
),
|
|
List(
|
|
ExprList {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 615..668,
|
|
elts: [
|
|
Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 616..629,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 616..626,
|
|
id: Name("ValueError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 626..629,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 627..628,
|
|
value: Int(
|
|
1,
|
|
),
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 631..643,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 631..640,
|
|
id: Name("TypeError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 640..643,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 641..642,
|
|
value: Int(
|
|
2,
|
|
),
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 645..655,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 645..652,
|
|
id: Name("OSError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 652..655,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 653..654,
|
|
value: Int(
|
|
3,
|
|
),
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 657..667,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 657..664,
|
|
id: Name("OSError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 664..667,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 665..666,
|
|
value: Int(
|
|
4,
|
|
),
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
],
|
|
ctx: Load,
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
),
|
|
cause: None,
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 670..751,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 678..687,
|
|
id: Name("TypeError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 691..692,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 698..751,
|
|
value: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 698..751,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 698..703,
|
|
id: Name("print"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 703..751,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
FString(
|
|
ExprFString {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 704..750,
|
|
value: FStringValue {
|
|
inner: Single(
|
|
FString(
|
|
FString {
|
|
range: 704..750,
|
|
node_index: AtomicNodeIndex(..),
|
|
elements: [
|
|
Literal(
|
|
InterpolatedStringLiteralElement {
|
|
range: 706..713,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: "caught ",
|
|
},
|
|
),
|
|
Interpolation(
|
|
InterpolatedElement {
|
|
range: 713..722,
|
|
node_index: AtomicNodeIndex(..),
|
|
expression: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 714..721,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 714..718,
|
|
id: Name("type"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 718..721,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 719..720,
|
|
id: Name("e"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
debug_text: None,
|
|
conversion: None,
|
|
format_spec: None,
|
|
},
|
|
),
|
|
Literal(
|
|
InterpolatedStringLiteralElement {
|
|
range: 722..735,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: " with nested ",
|
|
},
|
|
),
|
|
Interpolation(
|
|
InterpolatedElement {
|
|
range: 735..749,
|
|
node_index: AtomicNodeIndex(..),
|
|
expression: Attribute(
|
|
ExprAttribute {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 736..748,
|
|
value: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 736..737,
|
|
id: Name("e"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
attr: Identifier {
|
|
id: Name("exceptions"),
|
|
range: 738..748,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
ctx: Load,
|
|
},
|
|
),
|
|
debug_text: None,
|
|
conversion: None,
|
|
format_spec: None,
|
|
},
|
|
),
|
|
],
|
|
flags: FStringFlags {
|
|
quote_style: Double,
|
|
prefix: Regular,
|
|
triple_quoted: false,
|
|
},
|
|
},
|
|
),
|
|
),
|
|
},
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 752..831,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 760..767,
|
|
id: Name("OSError"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
),
|
|
name: Some(
|
|
Identifier {
|
|
id: Name("e"),
|
|
range: 771..772,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
),
|
|
body: [
|
|
Expr(
|
|
StmtExpr {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 778..831,
|
|
value: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 778..831,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 778..783,
|
|
id: Name("print"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 783..831,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
FString(
|
|
ExprFString {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 784..830,
|
|
value: FStringValue {
|
|
inner: Single(
|
|
FString(
|
|
FString {
|
|
range: 784..830,
|
|
node_index: AtomicNodeIndex(..),
|
|
elements: [
|
|
Literal(
|
|
InterpolatedStringLiteralElement {
|
|
range: 786..793,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: "caught ",
|
|
},
|
|
),
|
|
Interpolation(
|
|
InterpolatedElement {
|
|
range: 793..802,
|
|
node_index: AtomicNodeIndex(..),
|
|
expression: Call(
|
|
ExprCall {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 794..801,
|
|
func: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 794..798,
|
|
id: Name("type"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
arguments: Arguments {
|
|
range: 798..801,
|
|
node_index: AtomicNodeIndex(..),
|
|
args: [
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 799..800,
|
|
id: Name("e"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
debug_text: None,
|
|
conversion: None,
|
|
format_spec: None,
|
|
},
|
|
),
|
|
Literal(
|
|
InterpolatedStringLiteralElement {
|
|
range: 802..815,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: " with nested ",
|
|
},
|
|
),
|
|
Interpolation(
|
|
InterpolatedElement {
|
|
range: 815..829,
|
|
node_index: AtomicNodeIndex(..),
|
|
expression: Attribute(
|
|
ExprAttribute {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 816..828,
|
|
value: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 816..817,
|
|
id: Name("e"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
attr: Identifier {
|
|
id: Name("exceptions"),
|
|
range: 818..828,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
ctx: Load,
|
|
},
|
|
),
|
|
debug_text: None,
|
|
conversion: None,
|
|
format_spec: None,
|
|
},
|
|
),
|
|
],
|
|
flags: FStringFlags {
|
|
quote_style: Double,
|
|
prefix: Regular,
|
|
triple_quoted: false,
|
|
},
|
|
},
|
|
),
|
|
),
|
|
},
|
|
},
|
|
),
|
|
],
|
|
keywords: [],
|
|
},
|
|
},
|
|
),
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [],
|
|
is_star: true,
|
|
},
|
|
),
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 833..1075,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 842..846,
|
|
},
|
|
),
|
|
],
|
|
handlers: [
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 847..875,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
StringLiteral(
|
|
ExprStringLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 854..865,
|
|
value: StringLiteralValue {
|
|
inner: Single(
|
|
StringLiteral {
|
|
range: 854..865,
|
|
node_index: AtomicNodeIndex(..),
|
|
value: "exception",
|
|
flags: StringLiteralFlags {
|
|
quote_style: Double,
|
|
prefix: Empty,
|
|
triple_quoted: false,
|
|
},
|
|
},
|
|
),
|
|
},
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 871..875,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 876..894,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 883..884,
|
|
value: Int(
|
|
1,
|
|
),
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 890..894,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 895..916,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
BooleanLiteral(
|
|
ExprBooleanLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 902..906,
|
|
value: true,
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 912..916,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 917..939,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
BinOp(
|
|
ExprBinOp {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 924..929,
|
|
left: NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 924..925,
|
|
value: Int(
|
|
1,
|
|
),
|
|
},
|
|
),
|
|
op: Add,
|
|
right: NumberLiteral(
|
|
ExprNumberLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 928..929,
|
|
value: Int(
|
|
1,
|
|
),
|
|
},
|
|
),
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 935..939,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 940..962,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
BinOp(
|
|
ExprBinOp {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 947..952,
|
|
left: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 947..948,
|
|
id: Name("a"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
op: BitOr,
|
|
right: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 951..952,
|
|
id: Name("b"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 958..962,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 963..987,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
BoolOp(
|
|
ExprBoolOp {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 970..977,
|
|
op: And,
|
|
values: [
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 970..971,
|
|
id: Name("x"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 976..977,
|
|
id: Name("y"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 983..987,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 988..1012,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Await(
|
|
ExprAwait {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 995..1002,
|
|
value: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1001..1002,
|
|
id: Name("x"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1008..1012,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 1013..1041,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
Lambda(
|
|
ExprLambda {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1020..1031,
|
|
parameters: Some(
|
|
Parameters {
|
|
range: 1027..1028,
|
|
node_index: AtomicNodeIndex(
|
|
0,
|
|
),
|
|
posonlyargs: [],
|
|
args: [
|
|
ParameterWithDefault {
|
|
range: 1027..1028,
|
|
node_index: AtomicNodeIndex(..),
|
|
parameter: Parameter {
|
|
range: 1027..1028,
|
|
node_index: AtomicNodeIndex(..),
|
|
name: Identifier {
|
|
id: Name("x"),
|
|
range: 1027..1028,
|
|
node_index: AtomicNodeIndex(..),
|
|
},
|
|
annotation: None,
|
|
},
|
|
default: None,
|
|
},
|
|
],
|
|
vararg: None,
|
|
kwonlyargs: [],
|
|
kwarg: None,
|
|
},
|
|
),
|
|
body: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1030..1031,
|
|
id: Name("x"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1037..1041,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
ExceptHandler(
|
|
ExceptHandlerExceptHandler {
|
|
range: 1042..1075,
|
|
node_index: AtomicNodeIndex(..),
|
|
type_: Some(
|
|
If(
|
|
ExprIf {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1049..1065,
|
|
test: BooleanLiteral(
|
|
ExprBooleanLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1054..1058,
|
|
value: true,
|
|
},
|
|
),
|
|
body: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1049..1050,
|
|
id: Name("x"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
orelse: Name(
|
|
ExprName {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1064..1065,
|
|
id: Name("y"),
|
|
ctx: Load,
|
|
},
|
|
),
|
|
},
|
|
),
|
|
),
|
|
name: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1071..1075,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
),
|
|
],
|
|
orelse: [],
|
|
finalbody: [],
|
|
is_star: false,
|
|
},
|
|
),
|
|
If(
|
|
StmtIf {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1077..1222,
|
|
test: BooleanLiteral(
|
|
ExprBooleanLiteral {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1080..1084,
|
|
value: true,
|
|
},
|
|
),
|
|
body: [
|
|
Try(
|
|
StmtTry {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1090..1133,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1103..1107,
|
|
},
|
|
),
|
|
],
|
|
handlers: [],
|
|
orelse: [],
|
|
finalbody: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1129..1133,
|
|
},
|
|
),
|
|
],
|
|
is_star: false,
|
|
},
|
|
),
|
|
],
|
|
elif_else_clauses: [
|
|
ElifElseClause {
|
|
range: 1208..1222,
|
|
node_index: AtomicNodeIndex(..),
|
|
test: None,
|
|
body: [
|
|
Pass(
|
|
StmtPass {
|
|
node_index: AtomicNodeIndex(..),
|
|
range: 1218..1222,
|
|
},
|
|
),
|
|
],
|
|
},
|
|
],
|
|
},
|
|
),
|
|
],
|
|
},
|
|
)
|
|
```
|