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
分裂为ASYNC101
,ASYNC220
,ASYNC221
,ASYNC230
, 和ASYNC251
blocking-os-call-in-async-function
被合并到ASYNC102
,ASYNC220
, 和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] 更新并弃用 trapz
, zin1d
NPY201
[flake8-bandit] 修改与shell相关的规则的诊断范围
服务器
关闭未命名且未保存的笔记本文档不再抛出错误
支持在 logFile
中使用波浪线和环境变量
添加选项以配置是否显示语法错误
错误修复
[pycodestyle] 避免对f-string调试表达式报错
[pep8-naming] 对于import-name忽略匹配名称和别名
[pyflakes] 检测遮蔽定义的赋值
解析器
对空类型参数列表发出语法错误
避免消耗未终止字符串的新行
不要在未终止字符串范围内包含新行
使用正确的范围高亮行延续错误
考虑行延续前的2字符EOL
考虑行延续字符以便重新词法分析
其他变更
升级用于测量行长度的Unicode表
移除育婴室选择器的废弃错误信息