#search-pattern #codemod #ast #rewrite

ast-grep-py

Search and Rewrite code at large scale using precise AST pattern

71 releases (20 breaking)

0.33.1 Jan 13, 2025
0.32.3 Dec 30, 2024
0.30.1 Nov 26, 2024
0.25.4 Jul 26, 2024
0.13.2 Nov 20, 2023

#9 in #codemod

Download history 5/week @ 2025-08-21

4,434 downloads per month

MIT license

515KB
15K SLoC

ast-grep python binding

PyPI Website

ast-grep

ast-grep

ast-grep is a tool for code structural search, lint, and rewriting.

This crate intends to build a native python binding of ast-grep and provide a python API for programmatic usage.

Installation

pip install ast-grep-py

Usage

You can take our tests as examples. For example, test_simple.py shows how to use ast-grep to search for a pattern in a file.

Please see the API usage guide and API reference for more details.

Other resources include ast-grep's official site and repository.

Development

Setup virtualenv

python -m venv venv

Activate venv

source venv/bin/activate

Install maturin

pip install maturin[patchelf]

MacOS: Install patchelf and maturin

brew install patchelf
pip install maturin

Build bindings

maturin develop

Run tests

pytest

All tests files are under tests directory.

License

This project is licensed under the MIT license.

Dependencies

~7–14MB
~263K SLoC