A customizable Python linting engine that allows project-specific static analysis rules through AST expressions and regex patterns.
Bellybutton is a customizable linting engine for Python that allows developers to define and enforce project-specific static analysis rules. It solves the problem of repetitive code reviews and legacy code deprecation by making it easy to codify internal style guides and common error patterns directly into the development workflow.
Python development teams, especially those with large or legacy codebases, many contributors, or specific internal coding standards that go beyond what standard linters enforce.
Developers choose Bellybutton because it provides an accessible way to create custom linting rules without the complexity of building a full static analysis tool, filling the gap left by generic linters with project-specific enforcement.
Custom Python linting through AST expressions
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports rules via astpath expressions or regex in YAML, enabling precise pattern matching for custom needs.
Allows codifying internal style guides and deprecation warnings, directly addressing gaps in standard linters.
Includes settings for file inclusion/exclusion and inline ignore comments, facilitating incremental rollout.
Rules can include example and counter-example snippets validated at runtime, ensuring accuracy.
The README states it's in alpha, missing key features and prone to breaking bugs, making it risky for production.
Admitted not optimized for extremely large codebases, which could lead to slow linting on big projects.
Expression nodes like !chain and !verbal are not yet implemented, restricting complex rule definitions.