Rattle¶
Rattle is a Python linting framework built on LibCST with support for autofixes, custom in-repo lint rules, and hierarchical configuration.
Rattle is a fork of Fixit.
Features¶
Built-in lint rules for common Python issues
Autofix support when a rule can safely rewrite code
Local custom rules that can live inside your repository
Hierarchical
pyproject.tomlconfigurationPre-commit integration for CI and local workflows
LSP support
Install¶
Install the CLI from PyPI:
pip install rattle-lint
Install editor/LSP support too:
pip install "rattle-lint[lsp]"
Basic Usage¶
Rattle runs with no enabled rules until a project enables them in
pyproject.toml:
[tool.rattle]
enable = ["fixit"]
rattle lint
Apply available autofixes:
rattle fix
Example Configuration¶
[tool.rattle]
root = true
enable = ["fixit"]
python-version = "3.10"
output-format = "rattle"
disable = [
"no-static-if-condition",
"use-rattle-ignore-comment",
]
per-file-disable = {"tests/generated.py" = ["no-named-tuple"]}
[[tool.rattle.overrides]]
path = "legacy"
enable = ["fixit-extra"]
[[tool.rattle.overrides]]
path = "tests"
enable = ["no-named-tuple"]
Documentation¶
License¶
MIT