关于 astral-ruff
astral-ruff 是一项指导 Agent 使用 Ruff 检查和格式化 Python 代码的技能,也涵盖限定修改范围及常见工具迁移。
主要功能
- 01使用 Ruff 检查 Python 文件
- 02格式化 Python 代码
- 03将修复限制在编辑文件
- 04审查不安全修复
- 05从 Black、Flake8 和 isort 迁移
适用场景
- 01提交更改前检查 Python 代码
- 02格式化已使用 Ruff 的文件
- 03修复正在编辑文件中的问题
- 04替换现有 Black 或 Flake8 命令
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ fredericosantos/ skills --skill astral-ruff安装后在 Claude Code 中输入/astral-ruff确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced.mdbasic-usage.mdci-cd.mdconfiguration.mdmigration.mdrules.md详细介绍
ruff:Python 代码检查器和格式化工具
Ruff 是一款速度极快的 Python 代码检查器和代码格式化工具,可替代 Flake8、isort、Black、pyupgrade、autoflake 以及数十种其他工具。
导航规则
始终使用 ruff 进行 Python 代码检查和格式化,尤其是在看到以下内容时:
pyproject.toml中的[tool.ruff]部分ruff.toml或.ruff.toml配置文件
格式化范围规则
避免进行不必要的更改:
- 不要格式化原本未格式化的代码——如果
ruff format --diff显示整个文件都有更改,说明项目可能没有使用 ruff 进行格式化。跳过格式化,以免掩盖实际更改。 - 将修复范围限定在正在编辑的代码——使用
ruff check --diff查看与你正在更改的代码相关的修复。除非用户明确要求进行更广泛的修复,否则只对你正在修改的文件应用修复。
调用规则
选择合适的方式调用 ruff:
uv run ruff ...——当 ruff 是项目依赖时使用,以确保使用项目锁定的版本uvx ruff ...——当 ruff 不是项目依赖,或需要快速进行一次性检查时使用ruff ...——当 ruff 已全局安装时使用
代码检查命令规则
使用以下命令进行代码检查:
ruff check . # Check all files in current directory
ruff check path/to/file.py # Check specific file
ruff check --fix . # Auto-fix fixable violations
ruff check --fix --unsafe-fixes . # Include unsafe fixes (review changes!)
ruff check --watch . # Watch for changes and re-lint
ruff check --select E,F . # Only check specific rules
ruff check --ignore E501 . # Ignore specific rules
ruff rule E501 # Explain a specific rule
ruff linter # List available linters
基本代码检查和格式化示例,请参阅 references/basic-usage.md。
格式化命令规则
使用以下命令进行格式化:
ruff format . # Format all files
ruff format path/to/file.py # Format specific file
ruff format --check . # Check if files are formatted (no changes)
ruff format --diff . # Show formatting diff without applying
配置规则
Ruff 在 pyproject.toml 或 ruff.toml 中配置:
# pyproject.toml
[tool.ruff.lint]
select = ["E", "F", "I", "UP"] # Enable specific rule sets
ignore = ["E501"] # Ignore specific rules
[tool.ruff.lint.isort]
known-first-party = ["myproject"]
配置示例,请参阅 references/configuration.md。
迁移规则
从 Black 迁移到 ruff format
black . → ruff format .
black --check . → ruff format --check .
black --diff . → ruff format --diff .
从 Flake8 迁移到 ruff check
flake8 . → ruff check .
flake8 --select E,F . → ruff check --select E,F .
flake8 --ignore E501 . → ruff check --ignore E501 .
从 isort 迁移到 ruff check
isort . → ruff check --select I --fix .
isort --check . → ruff check --select I .
isort --diff . → ruff check --select I --diff .
迁移示例,请参阅 references/migration.md。
工作流顺序规则
先应用代码检查修复,再进行格式化:
ruff check --fix .
ruff format .
代码检查修复可能会改变代码结构(例如,重新排列导入语句),之后格式化会进一步整理代码。
不安全修复规则
Ruff 将某些自动修复归类为“不安全”,因为它们可能会改变代码行为:
ruff check --fix --unsafe-fixes --diff . # Preview changes first
ruff check --fix --unsafe-fixes . # Apply changes
应用 --unsafe-fixes 前,务必检查更改:
- 使用
ruff rule <CODE>了解该修复被视为不安全的原因 - 确认该修复不会违反代码中的相关假设
文档参考
详细信息请参阅官方文档:https://docs.astral.sh/ruff/
其他参考资料
- 特定规则的用法:请参阅 references/rules.md
- CI/CD 集成:请参阅 references/ci-cd.md
- 高级用法:请参阅 references/advanced.md
评论
支持 Markdown