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..144,
        body: [
            FunctionDef(
                StmtFunctionDef {
                    node_index: NodeIndex(None),
                    range: 0..34,
                    is_async: false,
                    decorator_list: [],
                    name: Identifier {
                        id: Name("f1"),
                        range: 4..6,
                        node_index: NodeIndex(None),
                    },
                    type_params: None,
                    parameters: Parameters {
                        range: 6..8,
                        node_index: NodeIndex(None),
                        posonlyargs: [],
                        args: [],
                        vararg: None,
                        kwonlyargs: [],
                        kwarg: None,
                    },
                    returns: None,
                    body: [
                        ImportFrom(
                            StmtImportFrom {
                                node_index: NodeIndex(None),
                                range: 14..34,
                                module: Some(
                                    Identifier {
                                        id: Name("module"),
                                        range: 19..25,
                                        node_index: NodeIndex(None),
                                    },
                                ),
                                names: [
                                    Alias {
                                        range: 33..34,
                                        node_index: NodeIndex(None),
                                        name: Identifier {
                                            id: Name("*"),
                                            range: 33..34,
                                            node_index: NodeIndex(None),
                                        },
                                        asname: None,
                                    },
                                ],
                                level: 0,
                                is_lazy: false,
                            },
                        ),
                    ],
                },
            ),
            ClassDef(
                StmtClassDef {
                    node_index: NodeIndex(None),
                    range: 35..68,
                    decorator_list: [],
                    name: Identifier {
                        id: Name("C"),
                        range: 41..42,
                        node_index: NodeIndex(None),
                    },
                    type_params: None,
                    arguments: None,
                    body: [
                        ImportFrom(
                            StmtImportFrom {
                                node_index: NodeIndex(None),
                                range: 48..68,
                                module: Some(
                                    Identifier {
                                        id: Name("module"),
                                        range: 53..59,
                                        node_index: NodeIndex(None),
                                    },
                                ),
                                names: [
                                    Alias {
                                        range: 67..68,
                                        node_index: NodeIndex(None),
                                        name: Identifier {
                                            id: Name("*"),
                                            range: 67..68,
                                            node_index: NodeIndex(None),
                                        },
                                        asname: None,
                                    },
                                ],
                                level: 0,
                                is_lazy: false,
                            },
                        ),
                    ],
                },
            ),
            FunctionDef(
                StmtFunctionDef {
                    node_index: NodeIndex(None),
                    range: 69..105,
                    is_async: false,
                    decorator_list: [],
                    name: Identifier {
                        id: Name("f2"),
                        range: 73..75,
                        node_index: NodeIndex(None),
                    },
                    type_params: None,
                    parameters: Parameters {
                        range: 75..77,
                        node_index: NodeIndex(None),
                        posonlyargs: [],
                        args: [],
                        vararg: None,
                        kwonlyargs: [],
                        kwarg: None,
                    },
                    returns: None,
                    body: [
                        ImportFrom(
                            StmtImportFrom {
                                node_index: NodeIndex(None),
                                range: 83..105,
                                module: Some(
                                    Identifier {
                                        id: Name("module"),
                                        range: 90..96,
                                        node_index: NodeIndex(None),
                                    },
                                ),
                                names: [
                                    Alias {
                                        range: 104..105,
                                        node_index: NodeIndex(None),
                                        name: Identifier {
                                            id: Name("*"),
                                            range: 104..105,
                                            node_index: NodeIndex(None),
                                        },
                                        asname: None,
                                    },
                                ],
                                level: 2,
                                is_lazy: false,
                            },
                        ),
                    ],
                },
            ),
            FunctionDef(
                StmtFunctionDef {
                    node_index: NodeIndex(None),
                    range: 106..143,
                    is_async: false,
                    decorator_list: [],
                    name: Identifier {
                        id: Name("f3"),
                        range: 110..112,
                        node_index: NodeIndex(None),
                    },
                    type_params: None,
                    parameters: Parameters {
                        range: 112..114,
                        node_index: NodeIndex(None),
                        posonlyargs: [],
                        args: [],
                        vararg: None,
                        kwonlyargs: [],
                        kwarg: None,
                    },
                    returns: None,
                    body: [
                        ImportFrom(
                            StmtImportFrom {
                                node_index: NodeIndex(None),
                                range: 120..143,
                                module: Some(
                                    Identifier {
                                        id: Name("module"),
                                        range: 125..131,
                                        node_index: NodeIndex(None),
                                    },
                                ),
                                names: [
                                    Alias {
                                        range: 139..140,
                                        node_index: NodeIndex(None),
                                        name: Identifier {
                                            id: Name("*"),
                                            range: 139..140,
                                            node_index: NodeIndex(None),
                                        },
                                        asname: None,
                                    },
                                    Alias {
                                        range: 142..143,
                                        node_index: NodeIndex(None),
                                        name: Identifier {
                                            id: Name("*"),
                                            range: 142..143,
                                            node_index: NodeIndex(None),
                                        },
                                        asname: None,
                                    },
                                ],
                                level: 0,
                                is_lazy: false,
                            },
                        ),
                    ],
                },
            ),
        ],
    },
)
```
## Errors

  |
6 |     from ..module import *
7 | def f3():
8 |     from module import *, *
  |                        ^^^^ Syntax Error: Star import must be the only import
  |


## Semantic Syntax Errors

  |
1 | def f1():
2 |     from module import *
  |     ^^^^^^^^^^^^^^^^^^^^ Syntax Error: `from module import *` only allowed at module level
3 | class C:
4 |     from module import *
  |


  |
2 |     from module import *
3 | class C:
4 |     from module import *
  |     ^^^^^^^^^^^^^^^^^^^^ Syntax Error: `from module import *` only allowed at module level
5 | def f2():
6 |     from ..module import *
  |


  |
4 |     from module import *
5 | def f2():
6 |     from ..module import *
  |     ^^^^^^^^^^^^^^^^^^^^^^ Syntax Error: `from ..module import *` only allowed at module level
7 | def f3():
8 |     from module import *, *
  |


  |
6 |     from ..module import *
7 | def f3():
8 |     from module import *, *
  |     ^^^^^^^^^^^^^^^^^^^^^^^ Syntax Error: `from module import *` only allowed at module level
  |