The ones I use:
- python_parser, allows me to load the python source code and detect any parsing errors (returned to the frontend)
- python_ast, allows me to extract the identifiers (variable names, function names, etc)
- python_semantic, allows to do scope analysis and understand relationships between identifiers
In the first prototype I used Python's ast and symtable libs. However, I really wanted to rely on the speed of Ruff's implementation and Rust's speed.
I used rust 'cause of Ruff. They have an outstanding set of crates https://github.com/astral-sh/ruff/tree/main/crates
The ones I use: - python_parser, allows me to load the python source code and detect any parsing errors (returned to the frontend) - python_ast, allows me to extract the identifiers (variable names, function names, etc) - python_semantic, allows to do scope analysis and understand relationships between identifiers
In the first prototype I used Python's ast and symtable libs. However, I really wanted to rely on the speed of Ruff's implementation and Rust's speed.