Ruff v0.1.0 Rust 编写的高性能 Python 代码分析工具

2023年 10月 17日 34.1k 0

【源创会预告】1024 程序员节(的前两天),相约开源中国办公室,我们一起聊 AI!>>>

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 友好,具有分层和级联配置

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论