SuperAPI AI 工具集

flake8-to-ruff

编程与开发

查看项目

更新于 10-15 23:49

技能介绍

用途:把 Python 项目的 lint 与导入排序从 flake8、isort 迁移到基于 Rust 的 ruff,统一工具链。适用于 .pre-commit-config.yaml 含 pycqa/flake8 或 PyCQA/isort 钩子,或存在 [tool.flake8]、[tool.isort] 配置,或希望整合 lint 工具时。若依赖无 ruff 等价物的 flake8 插件、团队在自定义脚本中使用 flake8 API、CI 依赖特定 flake8 退出码,则应保留原工具。

主要能力:审计现有配置(.pre-commit-config.yaml、pyproject.toml、setup.cfg、.flake8);将 flake8 与 isort 配置映射为 ruff 等价项,如 max-line-length 对应 [tool.ruff] line-length,extend-ignore 对应 [tool.ruff.lint] ignore,per-file-ignores 对应 [tool.ruff.lint.per-file-ignores],pep8-naming/bugbear/annotations 插件分别对应 select 中的 N/B/ANN,isort 的 profile、known-first-party、force-sort-within-sections 对应 [tool.ruff.lint.isort];更新 pre-commit 配置,移除旧钩子并加入 ruff-pre-commit;清理 pyproject.toml 与独立配置文件;运行验证并输出迁移报告。

使用方式:支持 --check-only 仅报告变更、--fix 自动应用。典型命令包括 /migration-patterns:flake8-to-ruff --check-only、--fix,验证用 pre-commit run ruff --all-files,按规则检查用 uvx ruff check . --select E,W,F,I,N,B。移除依赖示例:uvx --from uv uv remove --dev flake8 isort。

限制:ruff 可能暴露 flake8 未捕获的新 lint 错误,需人工决定立即修复、临时忽略或后续处理;迁移后需自行暂存变更文件。具体版本与配置细节以实际项目为准。