Ruff v0.0.281 发布,Rust 编写的高性能 Python 代码分析工具
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 友好,具有分层和级联配置
Ruff 刚刚发布了 v0.0.281 版本。
主要变化是提升词法分析器速度。据称 Ruff 的词法分析器现在比旧版本快 2-3 倍:
group v0.0.280 v0.0.281 ----- -------- -------- lexer/large/dataset.py 2.18 665.9±5.64µs 61.1 MB/sec 1.00 304.9±3.79µs 133.4 MB/sec lexer/numpy/ctypeslib.py 2.39 154.4±0.84µs 107.8 MB/sec 1.00 64.5±0.61µs 258.1 MB/sec lexer/numpy/globals.py 2.89 18.1±0.14µs 163.3 MB/sec 1.00 6.3±0.06µs 471.8 MB/sec lexer/pydantic/types.py 2.57 326.4±2.23µs 78.1 MB/sec 1.00 127.2±0.71µs 200.5 MB/sec
词法分析器负责将 Python 源代码标记为 token 流,然后解析器使用这些标记来构建抽象语法树 (AST)。词法分析器是 Ruff 分析管道中的第一步,在 Ruff 分析的每个文件上运行。
因此优化词法分析器性能不仅可以提升 linter 性能,还可以提升未来利用 Ruff 词法分析器的工具(例如 Ruff 格式化程序)的性能。
新的词法分析器利用更多缓存友好的数据结构,执行更少的分配,并包括对纯 ASCII 源代码的优化。详情。
其他变化包括忽略行尾# ruff: noqa
注释,以及新增更多规则,具体变化点此查看。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
比 Protocol Buffers 快无限倍,开源十年后 Cap'n Proto 1.0 终发布
Cap'n Proto 是一种速度极快的数据交换格式和 capability-based RPC 系统,于 2013 年 4 月开源发布。时至今日,Cap'n Proto 1.0 终于发布,这是一个长期支持版本。 Cap'n Proto 项目作者是Kenton Varda —— Protocol Buffers version 2 的主要开发者。他表示,Cap'n Proto 是其多年来开发 Protobufs、听取用户反馈并汲取经验思考反思后的成果结晶。 目前他已离开谷歌,因此“Cap'n Proto 不隶属于谷歌,也从未隶属于谷歌”。基准测试结果表明,Cap'n Proto 比 Protocol Buffers 快无限倍。 自上一个版本 v0.10 以来,新版本的一些亮点内容包括: 针对 Cap'n Proto RPC 性能的一系列优化。其中包括减少 RPC 实现和 KJ I/O 框架的内存分配量,增加从 RPC 协议中省略某些信息以减少流量的功能,以及更好地缓冲一起发送和接收的小信息以减少系统调用。 Breaking change: 在此之前,服务器可在调用完成后调用 conte...
- 下一篇
ModStartBlog v7.9.0 博客列表优化,安装向导缓存清除
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 会员模块通用且完整,支持完整的API调用 大文件分片上传,进度条显示,已上传文件管理 强大的模块扩展功能,所有模块可以无缝集成,支持在线安装、卸载模块 完善的开发助手,实现模块、主题的的一键创建 完善的后台权限管理,支持基于RBAC的权限管理系统 后台管理支持使用手机、平板、PC,无论何时何地都可方便管理 第三方登录(QQ、微信、微博、支付宝、微信小程序) 第三方支付支持(微信、支付宝、支付宝当面付、微信扫码、微信小程序) 第三方云存储支持,支持云储存分片上传(阿里云、百度云、华为云、腾讯云、FTP、七牛云、UCloud、又拍云) 第三方短信支持(阿里云、腾讯云、华为云、百度云、253云通讯、聚合、七牛云、融云、赛邮、UCloud、云片、网易云) V7.9.0版本更新 2023年08月01日ModStartBlog发布v7.9.0版本,增加了...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度