rustpython-ruff_python_parser 0.15.8

Unofficial fork for RustPython
Documentation
---
source: crates/ruff_python_parser/tests/fixtures.rs
---
## AST

```
Module(
    ModModule {
        node_index: NodeIndex(None),
        range: 0..53,
        body: [
            ImportFrom(
                StmtImportFrom {
                    node_index: NodeIndex(None),
                    range: 0..19,
                    module: Some(
                        Identifier {
                            id: Name("x"),
                            range: 5..6,
                            node_index: NodeIndex(None),
                        },
                    ),
                    names: [
                        Alias {
                            range: 15..16,
                            node_index: NodeIndex(None),
                            name: Identifier {
                                id: Name("a"),
                                range: 15..16,
                                node_index: NodeIndex(None),
                            },
                            asname: None,
                        },
                        Alias {
                            range: 18..19,
                            node_index: NodeIndex(None),
                            name: Identifier {
                                id: Name("b"),
                                range: 18..19,
                                node_index: NodeIndex(None),
                            },
                            asname: None,
                        },
                    ],
                    level: 0,
                    is_lazy: false,
                },
            ),
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 20..25,
                    value: BinOp(
                        ExprBinOp {
                            node_index: NodeIndex(None),
                            range: 20..25,
                            left: NumberLiteral(
                                ExprNumberLiteral {
                                    node_index: NodeIndex(None),
                                    range: 20..21,
                                    value: Int(
                                        1,
                                    ),
                                },
                            ),
                            op: Add,
                            right: NumberLiteral(
                                ExprNumberLiteral {
                                    node_index: NodeIndex(None),
                                    range: 24..25,
                                    value: Int(
                                        1,
                                    ),
                                },
                            ),
                        },
                    ),
                },
            ),
            ImportFrom(
                StmtImportFrom {
                    node_index: NodeIndex(None),
                    range: 26..46,
                    module: Some(
                        Identifier {
                            id: Name("x"),
                            range: 31..32,
                            node_index: NodeIndex(None),
                        },
                    ),
                    names: [
                        Alias {
                            range: 41..42,
                            node_index: NodeIndex(None),
                            name: Identifier {
                                id: Name("a"),
                                range: 41..42,
                                node_index: NodeIndex(None),
                            },
                            asname: None,
                        },
                        Alias {
                            range: 44..45,
                            node_index: NodeIndex(None),
                            name: Identifier {
                                id: Name("b"),
                                range: 44..45,
                                node_index: NodeIndex(None),
                            },
                            asname: None,
                        },
                    ],
                    level: 0,
                    is_lazy: false,
                },
            ),
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 47..52,
                    value: BinOp(
                        ExprBinOp {
                            node_index: NodeIndex(None),
                            range: 47..52,
                            left: NumberLiteral(
                                ExprNumberLiteral {
                                    node_index: NodeIndex(None),
                                    range: 47..48,
                                    value: Int(
                                        2,
                                    ),
                                },
                            ),
                            op: Add,
                            right: NumberLiteral(
                                ExprNumberLiteral {
                                    node_index: NodeIndex(None),
                                    range: 51..52,
                                    value: Int(
                                        2,
                                    ),
                                },
                            ),
                        },
                    ),
                },
            ),
        ],
    },
)
```
## Errors

  |
1 | from x import (a, b
  |                    ^ Syntax Error: Expected `)`, found newline
2 | 1 + 1
3 | from x import (a, b,
4 | 2 + 2
  |


  |
1 | from x import (a, b
2 | 1 + 1
3 | from x import (a, b,
  |                     ^ Syntax Error: Expected `)`, found newline
4 | 2 + 2
  |