4 releases (2 breaking)

0.4.0 Aug 6, 2024
0.3.1 Apr 6, 2024
0.3.0 Aug 29, 2023
0.2.0 Jan 11, 2023

#29 in Programming languages

Download history 17478/week @ 2024-12-14 1799/week @ 2024-12-21 3458/week @ 2024-12-28 22074/week @ 2025-01-04 21216/week @ 2025-01-11 11702/week @ 2025-01-18 13212/week @ 2025-01-25 14093/week @ 2025-02-01 16015/week @ 2025-02-08 11577/week @ 2025-02-15 23162/week @ 2025-02-22 18638/week @ 2025-03-01 27271/week @ 2025-03-08 18698/week @ 2025-03-15 17247/week @ 2025-03-22 15309/week @ 2025-03-29

80,084 downloads per month
Used in 42 crates (10 directly)

MIT and LGPL-3.0-only

425KB
12K SLoC

Rust 11K SLoC // 0.0% comments Python 2K SLoC // 0.2% comments

Python AST node definitions and utilities.

AST nodes are very similary defined like Python AST. But a few exceptions exist due to parser optimization. They can be transformed to matching Python-styled AST in reasonable cost.

[PythonArguments] is replaced by [Arguments]. The new [Arguments] type representation uses a new type [ArgWithDefault] to represent arguments with default values. See each type documentation for more details.

A few top-level sum types are renamed to human friendly names. [CmpOp] refers cmpop [UnaryOp] refers unaryop [BoolOp] refers boolop [WithItem] refers withitem [ExceptHandler] refers excepthandler


RustPython parser as a library

This project is forked from RustPython project. The parser is one of the core part of RustPython and Ruff project.

We try to keep these crates as a well-packaged library for more potential users.

Projects

  • RustPython is a Python interpreter
  • Ruff is an extremely fast Python linter
  • Pylyzer is a static code analyzer / language server for Python
  • Baembal is a Python package to accelerate ast.parse

Dependencies

~8.5MB
~157K SLoC