用途:该技能用于在项目中掌握 ruff 的代码质量检查(linting)与代码风格格式化(formatting),帮助在提交前检查、修复违规并统一格式。
主要能力:ruff 可替代 black(格式化)、isort(导入排序)、flake8/pylint(检查)、pyupgrade、autoflake 等工具,速度更快,支持自动修复多数违规,并可通过 select/ignore 配置规则。
常用命令: ruff check src/ tests/ 检查违规; ruff check src/ tests/ --fix 安全自动修复; ruff check src/ tests/ --fix --diff 预览修复; ruff check src/ tests/ --fix --unsafe-fixes 不安全修复; ruff format src/ tests/ 格式化; ruff format src/ tests/ --check 仅检查格式; ruff format src/ tests/ --diff 预览格式变更; 完整流程:ruff check src/ tests/ --fix && ruff format src/ tests/。
配置:在 pyproject.toml 中设置 [tool.ruff],如 line-length=100、target-version="py312";[tool.ruff.lint] 中 select=["ALL"] 并 ignore 若干规则;[tool.ruff.lint.per-file-ignores] 对测试目录忽略 S101、ANN;[tool.ruff.format] 设置 quote-style="double"、indent-style="space"。
常见违规:F401 未使用导入(可 --fix)、E501 行过长(手动换行)、B006 可变默认参数(可 --fix)、ANN001 缺少类型注解(手动添加)。输出格式为 文件:行:列 代码 说明,[*] 表示可用 --fix 修复。
适用场景:提交前修复与格式化、开发中仅检查、CI 中验证、IDE 保存时自动格式化。
限制:部分复杂违规需手动修复;--unsafe-fixes 需谨慎;与 pyright 冲突时先修类型再修风格;忽略规则应附理由。若命令未找到,可用 uv run ruff 或安装 dev 依赖。具体项目配置与依赖以实际资料为准。