avouch
Review the Python you changed, not the Python you inherited.
Avouch is a lightweight, Git-aware static analysis CLI for Python. It asks Git which files your next commit will touch, parses each changed .py file with the standard ast module, and reports structural problems against limits you configure in avouch.toml .
No daemon. No network. No path lists to maintain. Run it in the seconds before git push , fix what it flags, push.
pip install avouch cd your-repo avouch
Table of contents
Why it exists
The review set is the diff, not the repository. Avouch computes the review set from Git at run time ( git diff HEAD --name-only plus untracked files). Every finding is attributable to work you are about to push — never to the legacy you inherited.
Avouch computes the review set from Git at run time ( plus untracked files). Every finding is attributable to work you are about to push — never to the legacy you inherited. Metrics are exact. Parameter counts, nesting depth, and line spans come from the AST, not regex. If a metric cannot be computed exactly, Avouch does not claim it.
Parameter counts, nesting depth, and line spans come from the AST, not regex. If a metric cannot be computed exactly, Avouch does not claim it. Errors are data. An unreadable or syntactically broken file becomes an ERROR entry in the report. One broken file never cancels the review of the others.
... continue reading