Ruff v0.15.0

Ruff v0.15.0

💡 原文英文,约1400词,阅读约需6分钟。
📝

内容提要

Ruff v0.15.0 发布,新增 16 条稳定 lint 规则、6 项行为稳定化及代码块级抑制注释。格式化器推出 2026 风格指南:lambda 参数保持单行、Python 3.14 简化 except 块、保留函数体首空行。另有两项预览风格待反馈,并调整 Docker 镜像基础版本等破坏性变更。

🔎

延伸解读

2026 风格指南的格式化变化

Ruff v0.15.0 为格式化器引入 2026 风格指南,包含三项主要调整:lambda 参数保持单行,必要时对 lambda 体加括号以支持多行;在 Python 3.14 及以上版本中,移除 except 子句里异常元组的括号;允许函数体开头保留一个空行。这些变化旨在提升代码可读性,并更贴近 Black 的格式化输出。

代码块级抑制注释的引入

新版本稳定了块级抑制注释,使用 ruff: disable 和 ruff: enable 来允许一段代码内的规则违规。与文件级和行级注释不同,块级注释必须指定规则代码列表。例如,可以禁用 N803 规则以允许不符合命名规范的函数参数,避免逐行添加 noqa 注释。同时新增 RUF103 和 RUF104 规则来验证抑制注释的正确性。

破坏性变更与升级注意

本次发布包含多项破坏性变更:Docker 镜像 ruff:alpine 基于 Alpine 3.23,ruff:debian 和 ruff:debian-slim 基于 Debian 13;不再提供 ppc64 架构的二进制文件;配置解析时先解析所有扩展配置文件再回退到默认 Python 版本。升级时需留意这些变化对构建和运行环境的影响。

❓

Q&A

Ruff v0.15.0 新增了哪些 lint 规则和抑制注释功能?

Ruff v0.15.0 新增了 16 条稳定 lint 规则,并支持代码块级抑制注释(ruff: disable 和 ruff: enable),同时稳定了 6 项现有 lint 规则的行为。

Ruff 2026 风格指南对 lambda 格式化做了哪些改进?

2026 风格指南将 lambda 参数列表强制放在与 lambda 关键字同一行,并允许对 lambda 体加括号以支持跨多行断行,从而保持参数与周围列表项的区分,并与 Black 的格式化更一致。

在 Python 3.14 上,Ruff 格式化器如何处理 except 块?

在 Python 3.14 及更高版本中,Ruff 格式化器会移除 except 和 except* 块中捕获多个异常时的括号,采用更简洁的 except A, B, C 风格。

Ruff v0.15.0 中函数定义开头的空行如何处理?

2026 风格指南允许在函数体开头保留最多一个空行,用于分隔函数头或文档字符串与函数体,而 2025 风格指南会移除该空行。

Ruff v0.15.0 引入了哪些破坏性变更?

破坏性变更包括:ruff:alpine Docker 镜像基础从 Alpine 3.21 升级到 3.23;ruff:debian 和 ruff:debian-slim 镜像基础从 Debian 12 改为 Debian 13;不再提供 ppc64 架构的二进制文件;Ruff 现在会先解析所有扩展配置文件再回退到默认 Python 版本。

Ruff v0.15.0 中块级抑制注释如何使用?

块级抑制注释使用 ruff: disable[规则代码] 和 ruff: enable[规则代码] 来包裹代码块,必须提供方括号内的规则代码列表,用于在代码块范围内允许规则违规,替代多个行级 noqa 注释。

🏷️

标签

➡️

继续阅读