内容提要
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 注释。