用途
ruff-linting 是一个专注于使用 ruff check 作为极快 Python linter 的技能,提供全面的规则支持与自动修复知识。当需要运行 ruff check、选择规则集、自动修复 lint 违规、在 pyproject.toml 中配置 [tool.ruff.lint] 规则与按文件忽略、将 ruff 接入编辑器/预提交/CI/CD/Docker/构建系统,或从 Flake8/pylint/isort/pyupgrade 迁移到 ruff 的组合规则集时,可使用本技能。若需要运行 ruff format 强制代码风格,应改用 ruff-formatting;若需在技术栈层面比较 ruff 与类型检查器、格式化器,应改用 python-code-quality。
主要能力
ruff 的优势包括:极快(比 Flake8 快 10-100 倍)、使用 Rust 编写以获得性能、可替代多个工具(Flake8、pylint、isort、pyupgrade 等)、对许多规则具备自动修复能力、兼容现有配置、内置超过 800 条规则。
基本用法涵盖:简单 linting(ruff check、ruff check path/to/file.py、ruff check src/ tests/);自动修复(ruff check --diff 预览、ruff check --fix 应用安全修复);输出格式(默认、--statistics、--output-format json、--output-format github、--output-format gitlab、--output-format concise)。
规则选择涵盖常见规则代码:E(pycodestyle 错误,如 E501 行过长)、F(Pyflakes,如 F401 未使用导入)、W(pycodestyle 警告,如 W605 无效转义)、B(flake8-bugbear,如 B006 可变默认值)、I(isort,如 I001 导入未排序)、UP(pyupgrade,如 UP006 已弃用类型)、SIM(flake8-simplify,如 SIM102 嵌套 if)、D(pydocstyle,如 D100 缺少文档字符串)、N(pep8-naming,如 N806 变量命名)、S(flake8-bandit 安全,如 S101 assert 使用)、C4(flake8-comprehensions,如 C400 不必要的生成器)。选择方式包括 --select、--extend-select、--ignore,以及通过 ruff rule --all、ruff rule F401、ruff linter 查询规则。
配置涵盖 pyproject.toml 中的 [tool.ruff](line-length、target-version、exclude)与 [tool.ruff.lint](select、ignore、fixable、unfixable、per-file-ignores),以及独立的 ruff.toml(相同选项但无 [tool.ruff] 前缀,含 [lint.isort] 等插件配置)。
CI/CD 集成提供快速形式:GitHub Actions 使用 astral-sh/ruff-action@v3 并传入 args: 'check --output-format github';预提交钩子使用 https://github.com/astral-sh/ruff-pre-commit,rev 为 v0.14.0,钩子 id 为 ruff-check(args: [--fix])与 ruff-format。完整集成配方(编辑器设置、高级预提交配置、GitLab/CircleCI/Jenkins、Make/Just/Task/tox、Docker、LSP 服务器设置、迁移指南)见 REFERENCE.md。
使用方式
最佳实践包括:在代码质量强制、预提交验证、CI/CD 流水线、重构辅助、安全扫描、导入组织时使用 ruff check。关键点:始终将目录作为参数传入(ruff check services/orchestrator),切勿使用 cd(cd services/orchestrator && ruff check),原因是并行执行、输出更清晰、工具兼容性。规则选择策略建议逐步采用:从 select = ["E", "F"] 开始,依次加入 B、I、UP,再考虑 S。可修复与不可修复方面:将不确定的规则标记为不可修复以便人工审查,常见不可修复为 B(bugbear)与 F(pyflakes F401),让 ruff 修复安全规则如 I(isort)、UP(pyupgrade)。常见错误包括:使用 cd 而非传入目录参数、立即启用全部规则、在 --fix 前未使用 --diff、忽略规则解释(ruff rule <code>)、未为特殊情况配置按文件忽略。
快速参考提供基本操作、规则管理、输出格式、选择命令,以及配置层级(命令行参数优先级最高,其次当前目录 ruff.toml、当前目录 pyproject.toml、父目录配置递归、用户配置 ~/.config/ruff/ruff.toml)和常见规则组合(最小安全 E,F;良好默认 E,F,B,I;全面 E,F,B,I,UP,SIM;安全聚焦 E,F,B,S;文档字符串强制 D 配合 google 约定)。
适用场景
适用于 Python 代码质量检查、编码规范执行、缺陷发现、预提交验证、CI/CD 流水线、重构辅助、安全扫描与导入组织。
限制
资料未提供该技能的具体安装命令、收费或价格信息、平台支持范围、实际效果数据,以及除上述内容外的其他功能细节。