Ruff v0.1.0 已发布,此版本主要变化包括提升稳定性、引入新的预览模式、引入 fix safety 等级,以及执行正式的版本控制策略。
- 新的预览模式
通过预览模式,用户可自行选择体验新功能——用于启用新规则、不稳定修复和实验性代码分析。
[tool.ruff]
preview = true
- 引入 fix safety 等级
Ruff 自动修复违规行为的能力是其最强大的功能之一。然而,考虑到 Python 的动态特性,Ruff 并不总能保证修复是“安全的”。
自 5 月份以来,开发团队一直将 Ruff 的修复子集标记为不安全。当应用被安全修复时,代码的含义和意图将被保留;当应用不安全修复时,含义可能会改变。
但在 v0.1.0 中,Ruff 默认情况下只会使用安全修复,以增加应用修复时的准确性,并突出显示需要额外审查的修复。
查看文档了解更多。
- 执行正式的版本控制策略
随着 0.1.0 的发布,Ruff 正式执行完整的版本控制策略,简单总结如下:
- 次要版本号代表发布稳定预览功能、更改稳定行为以及进行重大更改。
- 补丁版本号代表错误修复,以及预览中的规则或修复的任何更改。
完整描述查看文档。
最后,Ruff 文档站点已从 beta.ruff.rs/docs 迁移到 docs.astral.sh。
详情查看发布公告。
Ruff 是基于 Rust 编写的高性能 Python 代码分析工具(即 Linter),用于检查代码中的语法错误、编码规范问题、潜在的逻辑问题和代码质量问题等,可以提供实时反馈和自动修复建议。其主打的特性是高性能,宣称比现有的同类工具快 10~100 倍。
Ruff 核心特性
- 通过 pip 安装
- 支持
pyproject.toml
- 兼容 Python 3.11
- 超过 500 条内置规则,与 Flake8 内置的规则集近乎对等
- 重新实现了数十个 Flake8 插件,如 flake8-bugbear、flake8-comprehensions 等
- 支持自动修复,可自动纠正错误(例如,删除未使用的导入)
- 内置缓存,可避免重复分析未更改的文件
- 支持 VS Code、Pycharm、Neovim、Sublime Text、Emacs 等编辑器
- 对 monorepo 友好,具有分层和级联配置