zigai/rattle

GitHub: zigai/rattle

Rattle 是一个基于 LibCST 的 Python 代码检查框架,提供自动修复、仓库内自定义规则和分层配置,帮助团队统一并改善代码质量。

Stars: 0 | Forks: 0

# Rattle [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/cas/09/097271ca091990be630ef6043309cc48240faa054413384202036fa2efedb2d2.svg)](https://github.com/zigai/rattle/actions/workflows/tests.yml) [![文档状态](https://readthedocs.org/projects/rattle/badge/?version=latest)](https://rattle.readthedocs.io/en/latest/?badge=latest) [![PyPI 版本](https://badge.fury.io/py/rattle-lint.svg)](https://badge.fury.io/py/rattle-lint) ![支持的版本](https://img.shields.io/badge/python-3.10+-blue.svg) [![下载量](https://static.pepy.tech/badge/rattle-lint)](https://pepy.tech/project/rattle-lint) [![许可证: MIT](https://img.shields.io/badge/license-MIT-4b5563.svg)](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, 代码规范, 开发工具, 无后门, 模块化设计, 自动化修复, 逆向工具, 错误基检测, 静态代码分析