zigai/rattle
GitHub: zigai/rattle
Rattle 是一个基于 LibCST 的 Python 代码检查框架,提供自动修复、仓库内自定义规则和分层配置,帮助团队统一并改善代码质量。
Stars: 0 | Forks: 0
# Rattle
[](https://github.com/zigai/rattle/actions/workflows/tests.yml)
[](https://rattle.readthedocs.io/en/latest/?badge=latest)
[](https://badge.fury.io/py/rattle-lint)

[](https://pepy.tech/project/rattle-lint)
[](https://github.com/zigai/rattle/blob/main/LICENSE)
Rattle 是一个基于 [LibCST](https://libcst.readthedocs.io) 构建的 Python 代码检查框架,支持自动修复、代码仓库内的自定义 lint 规则以及分层配置。
Rattle 是 [Fixit](https://github.com/Instagram/Fixit) 的一个 fork。
## 功能
- 48 个内置 lint 规则
- 当规则可以安全地重写代码时,支持自动修复
- 可直接存放在你的代码仓库内的本地自定义规则
- 分层式 `pyproject.toml` 配置
- 用于 CI 和本地工作流的 Pre-commit 集成
- 支持 LSP
## 安装
### 从 PyPI 安装
```
uv tool install rattle-lint
```
```
pip install rattle-lint
```
### 包含编辑器/LSP 支持
```
uv tool install "rattle-lint[lsp]"
```
```
pip install "rattle-lint[lsp]"
```
## Agent 技能
官方的 AI agent 技能可以从此仓库安装。
```
npx skills add https://github.com/zigai/rattle/tree/main/src/rattle/.agents/skills/create-rattle-lint-rules
```
或者
```
uvx library-skills
```
## 基本用法
在项目于 `pyproject.toml` 中启用规则之前,Rattle 不会运行任何已启用的规则:
```
[tool.rattle]
enable = ["fixit"]
```
```
rattle lint
```
应用可用的自动修复:
```
rattle fix
```
解释规则元数据、示例和设置:
```
rattle explain use-f-string
rattle explain --json use-f-string
```
## 示例配置
```
[tool.rattle]
root = true
enable = ["fixit"]
python-version = "3.10"
disable = [
"no-static-if-condition",
"use-rattle-ignore-comment",
]
per-file-disable = {"tests/generated.py" = ["no-named-tuple"]}
# 仅在 src/ 目录下应用额外规则。
[[tool.rattle.overrides]]
path = "src"
enable = ["fixit-extra"]
[[tool.rattle.overrides]]
path = "tests"
enable = ["no-named-tuple"]
```
## 许可证
[MIT](LICENSE)
标签:CLI应用, Python, SOC Prime, 代码规范, 开发工具, 无后门, 模块化设计, 自动化修复, 逆向工具, 错误基检测, 静态代码分析