操作系统
Linux
最近更新
2024-11-16
使用许可
开源
语言
不支持中文
文件大小
9.43 MB

Ruff是一个基于Python的代码检查工具,由astral开发。它可以帮助开发人员在编写Python代码时发现潜在问题并提供修复建议。

Ruff具有多种功能,包括代码检查、自动纠错等。它使用Rust编写的Python AST解析器,实现了自己的AST遍历、visitor抽象和lint规则逻辑。与其他工具相比,Ruff具有更快的速度和更高的性能,可以比Python的Flake8和Black快10-100倍。

此外,Ruff还支持通过pip安装、内置700+规则、兼容Python 3.12等功能,可以很容易地集成到现有的开发工作流程中。它还提供了实时反馈和自动修复建议,帮助开发人员更快地发现和解决问题。

0.5.0 版本更新说明:

重大变更

同时请参阅“重映射规则”部分,这可能导致某些规则被禁用。

现在遵循XDG规范在macOS上发现用户级别的配置(与其他Unix平台相同)

选择操作现在排除了所有已弃用的规则。

发布的归档文件现在包含额外一层嵌套,解压时可通过--strip-components=1移除。

发布制品的文件名不再包含版本标签,这使得用户能够通过GitHub上的/latest链接安装。


废弃内容

下列规则已被标记为废弃:

  • syntax-error (): 语法错误现在总是显示为E999。


重映射规则

下列规则已被重映射到新的规则代码:

  • blocking-http-call-in-async-function → ASYNC100 和 ASYNC210
  • open-sleep-or-subprocess-in-async-function 分裂为 ASYNC101ASYNC220ASYNC221ASYNC230, 和 ASYNC251
  • blocking-os-call-in-async-function 被合并到 ASYNC102ASYNC220, 和 ASYNC221
  • trio-timeout-without-await → TRIO100 和 ASYNC100
  • trio-sync-call → TRIO105 和 ASYNC105
  • trio-async-function-with-timeout → TRIO109 和 ASYNC109
  • trio-unneeded-sleep → TRIO110 和 ASYNC110
  • trio-zero-sleep-call → TRIO115 和 ASYNC115
  • repeated-isinstance-calls → PLR1701 和 SIM101


稳定化

下列规则已被稳定,不再处于预览状态:

  • mutable-fromkeys-value (RUF024)
  • default-factory-kwarg (RUF026)
  • django-extra (S610)
  • manual-dict-comprehension (PERF403)
  • print-empty-string (FURB105)
  • readlines-in-for (FURB129)
  • if-expr-min-max (FURB136)
  • bit-count (FURB161)
  • redundant-log-base (FURB163)
  • regex-flag-alias (FURB167)
  • isinstance-type-none (FURB168)
  • type-none-comparison (FURB169)
  • implicit-cwd (FURB177)
  • hashlib-digest-hex (FURB181)
  • list-reverse-copy (FURB187)
  • bad-open-mode (PLW1501)
  • empty-comment (PLR2044)
  • global-at-module-level (PLW0604)
  • misplaced-bare-raise (PLE0744)
  • non-ascii-import-name (PLC2403)
  • non-ascii-name (PLC2401)
  • nonlocal-and-global (PLE0115)
  • potential-index-error (PLE0643)
  • redeclared-assigned-name (PLW0128)
  • redefined-argument-from-local (PLR1704)
  • repeated-keyword-argument (PLE1132)
  • super-without-brackets (PLW0245)
  • unnecessary-list-index-lookup (PLR1736)
  • useless-exception-statement (PLW0133)
  • useless-with-lock (PLW2101)

下列行为已稳定:

  • is-literal (F632) 现在警告针对列表、集合或字典字面量的身份检查。
  • needless-bool (SIM103) 现在检测带有隐式分支的表达式。
  • module-import-not-at-top-of-file (E402) 现在允许在导入语句间进行修改,例如os.environ
  • type-comparison (E721) 现在允许诸如type(x) is int这样的习惯用法。
  • yoda-condition (SIM300) 现在标记更广泛的表达式。


移除内容

下列已废弃的设置已被移除:

  • output-format=text;改用 output-format=concise 或 output-format=full
  • tab-size;改用 indent-width

下列已废弃的命令行选项已被移除:

  • --show-source;改用 --output-format=full
  • --no-show-source;改用 --output-format=concise

下列已废弃的命令行命令已被移除:

  • ruff <path>;改用 ruff check <path>
  • ruff --clean;改用 ruff clean
  • ruff --generate-shell-completion;改用 ruff generate-shell-completion


预览特性

[ruff] 添加规则 assert-with-print-message


命令行界面

使用规则名而非消息进行统计输出

默认使用输出格式 full

不再将语法错误记录到控制台


规则变更

[ruff] 修复使用别名导入时的假阳性情况 gettext RUF027

[npy] 更新并弃用 trapzzin1d NPY201

[flake8-bandit] 修改与shell相关的规则的诊断范围


服务器

关闭未命名且未保存的笔记本文档不再抛出错误

支持在 logFile 中使用波浪线和环境变量

添加选项以配置是否显示语法错误


错误修复

[pycodestyle] 避免对f-string调试表达式报错

[pep8-naming] 对于import-name忽略匹配名称和别名

[pyflakes] 检测遮蔽定义的赋值


解析器

对空类型参数列表发出语法错误

避免消耗未终止字符串的新行

不要在未终止字符串范围内包含新行

使用正确的范围高亮行延续错误

考虑行延续前的2字符EOL

考虑行延续字符以便重新词法分析


其他变更

升级用于测量行长度的Unicode表

移除育婴室选择器的废弃错误信息

其他版本
最近更新软件·Linux 软件更新列表
小鱼易连 [网络] 小鱼易连 3.10.0.23021 ARM64/麒麟,鲲鹏
刚刚
小鱼易连 [网络] 小鱼易连 3.10.0.23021 ARM64/麒麟,鲲鹏
刚刚
Brave Browser [网络] Brave Browser 1.73.91 ARM64
刚刚
Brave Browser [网络] Brave Browser 1.73.91 64位
刚刚
Slack [应用软件] Slack 4.41.97 64位
刚刚
Cursor [开发] Cursor 0.42.5 64位
昨天 21:26
WPS 365 [应用软件] WPS 365 12.8.2.18605 龙芯
昨天 21:26
WPS 365 [应用软件] WPS 365 12.8.2.18605 ARM64
昨天 21:23
WPS 365 [应用软件] WPS 365 12.8.2.18605 MIPS64EL
昨天 21:23
WPS Office [应用软件] WPS Office 12.1.0.17900 64位
昨天 21:21
新软件·Linux 新软件列表
Cursor [开发] Cursor 0.42.5 64位
昨天 21:26
VMware Workstation [系统工具] VMware Workstation 17.6.1 64位
11-19
微信 [网络] 微信 4.0.0 龙芯
11-11
微信 [网络] 微信 4.0.0 ARM64
11-11
微信 [网络] 微信 4.0.0 64位
11-11
Another Redis Desktop Manager [开发] Another Redis Desktop Manager 1.7.0 ARM64
11-10
115浏览器 [网络] 115浏览器 27.0.6.9 64位
11-09
Python 3.13 [开发] Python 3.13 3.13.0 64位
11-07
Python 3.12 [开发] Python 3.12 3.12.7 64位
11-07
Python 3.11 [开发] Python 3.11 3.11.10 64位
11-07