Ruff,一个席卷 Python 圈的库

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

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

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

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

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

cbf880c4a75162d6bc2ea27d056c00da.png

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 等知名项目作者的力捧。

79d6b916a8fe966733752557a4bd8b25.png

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

补充一下

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

  • RustPython:用 Rust 写成的 Python 解释器。Ruff 利用了它高性能的 AST 解析器,以此实现了自己的 AST 遍历、访问器抽象和代码质量检测逻辑

  • Maturin:用 Rust 写成的打包工具,可以将 Rust 项目打包成 Python 可用的包,从而可以被我们“pip install”后使用,且不需要配置 Rust 环境

小结

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

- EOF -

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

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

911aa0c8c65232b52e3a0d197e7f8915.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值