Ruff,一个席卷Python圈的库

科技继续进击 2024-02-09 12:54:14

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

今天给大家推荐一款高性能的 Python 语法检查器和代码格式化工具。

这个开源项目就是:Ruff,它是基于 Rust 编写的高性能 Python 代码分析工具(即 Linter),用于检查代码中的语法错误、编码规范问题、潜在的逻辑问题和代码质量问题等,可以提供实时反馈和自动修复建议。

它主打的特性是高性能,宣称比现有的同类工具快 10~100 倍。

Ruff 核心特性通过 pip 安装支持 pyproject.toml兼容 Python 3.12超过 700 条内置规则,与 Flake8 内置的规则集近乎对等重新实现了数十个 Flake8 插件,如 flake8-bugbear、flake8-comprehensions 等支持自动修复,可自动纠正错误(例如,删除未使用的导入)内置缓存,可避免重复分析未更改的文件支持 VS Code、Pycharm、Neovim、Sublime Text、Emacs 等编辑器对 monorepo 友好,具有分层和级联配置

其中着重的一点是对规则的支持。

Ruff 借鉴了流行的工具如 Flake8、autoflake、isort、pyupgrade、yesqa 等等,然后用 Rust 重新实现了超过 500 条规则。

它本身不支持插件,但是吸收了数十个常用的 Flake8 插件的设计,使得已囊括的规则范围比其它任何工具都大。例如实现了部分flake8的插件。

Python 圈都在用

可能正是因为它的高性能,已经有越来越多的Python开发者转向使用 Ruff了。在Ruff的项目页面上,官方列出的就包括 FastAPI、Bokeh、isort、Zulip 等知名项目作者的力捧。

使用 Ruff 做语法检查和格式化的开源项目,更是近百。

补充一下

这里还必须介绍两个 Rust 项目,因为 Ruff 的成功离不开它们:

RustPython:用 Rust 写成的 Python 解释器。Ruff 利用了它高性能的 AST 解析器,以此实现了自己的 AST 遍历、访问器抽象和代码质量检测逻辑Maturin:用 Rust 写成的打包工具,可以将 Rust 项目打包成 Python 可用的包,从而可以被我们“pip install”后使用,且不需要配置 Rust 环境小结

本文为大家推荐了一个高性能的Python语法检查和格式化工具 Ruff,它正在逐渐席卷 Python 圈,得到了众多开源项目的支持。如果你有兴趣的话,不妨也在项目中试用一下吧。😊

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

点击标题可跳转

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

告诉你更多细节干货

欢迎围观我的朋友圈

👆每天更新所想所悟

7 阅读:2060

科技继续进击

简介:感谢大家的关注