特点:
- 比现有的 linter 快 10-100 倍
- 可通过以下方式安装pip
- ️pyproject.toml支持
- Python 3.11 兼容性
- 内置缓存,避免重新分析未更改的文件
- Autofix 支持,用于自动纠错(例如,自动删除未使用的导入)
- 超过600 条内置规则
- 与内置 Flake8 规则集几乎相同
- 数十个 Flake8 插件的本机重新实现,例如 flake8-bugbear
- VS Code等 第一方编辑器集成
- Monorepo 友好,具有分层和级联配置
Ruff 的目标是比其他工具快几个数量级,同时在单个通用接口后面集成更多功能。
Ruff 可用于替换Flake8(以及数十个插件)、 isort、pydocstyle、 yesqa、eradicate、 pyupgrade和autoflake,同时执行速度比任何单个工具快数十或数百倍。
Ruff 的开发极为活跃,并被用于主要的开源项目,如
尝试用 ruff 测试近 100000 个文件(未格式化的文件需要 9.5 秒,第二次运行需要 1.4 秒),但最后我限制了文件数量,因为使用其他工具需要数小时或数天才能完成 - 现在大约 20 分钟后结束。
我用来进行基准测试的脚本可在https://github.com/astral-sh/ruff/tree/main/scripts/benchmarks中找到
由于大多数Python包已经根据黑标准重新格式化,该命令以两种模式运行,第一种(准备)模式根据程序自己的风格格式化代码,第二种仅验证更改(仅验证第二种模式的时间)是计算出来的)。
完整基准输出 - https://pastebin.com/J42yQBmT