0.7.4 版本更新说明:
预览功能
- flake8-datetimez:检测
datetime.max
和datetime.min
的使用(DTZ901) - flake8-logging:实现根日志调用检查(LOG015)
- flake8-no-pep420:检测空的隐式命名空间包(INP001)
- flake8-pyi:添加“替换为 Self”的修复建议(PYI019)
- perflint:实现手动列表推导式的快速修复(PERF401)
- pylint:实现浅拷贝环境变量检查(W1507)
- ruff:实现联合类型中
None
不在末尾的检查(RUF036) - ruff:从 flake8-markupsafe 插件实现不安全的标记调用检查(RUF035)
- ruff:为 attrs 数据类报告问题(RUF008, RUF009)
规则变更
- flake8-boolean-trap:排除定义操作符的魔术方法(FBT001)
- flake8-pyi:添加“替换为 Self”的修复建议(PYI034)
- flake8-pyi:始终自动修复重复的联合成员(PYI016)
- flake8-pyi:改进嵌套和混合类型联合的自动修复(PYI055)
- flake8-pyi:当类型注释包含注释时,将重复字面量成员的修复标记为不安全(PYI062)
服务器
- 使用当前工作目录解析 ruff.configuration 中的设置
Bug 修复
- 避免 PLC014(无用的导入别名)和 I002(缺少必需的导入)之间的冲突,通过考虑
lint.isort.required-imports
对 PLC014 进行处理 - flake8-type-checking:如果引用注释变为无效语法,则跳过引用注释(TCH001)
- flake8-pyi:避免在 Python 3.11 之前的存根文件中使用
typing.Self
(PYI034) - flake8-pytest-style:标记带有关键字参数
expected_exception
的pytest.raises
调用(PT011) - flake8-simplify:推断所有元素均为解包的字面量可迭代对象的真值性(SIM222)
- flake8-type-checking:修复
typing.Annotated
的误报(TCH001) - pylint:允许在笔记本的顶级作用域中使用
await
(PLE1142) - pylint:修复
await-outside-async
检测中的各种问题(PLE1142) - pyupgrade:避免在无效上下文中应用 PEP 646 重写(UP044)
- pyupgrade:检测冗余打开模式中的排列组合(UP015)
- refurb:避免在重新排序的集合中触发硬编码字符串字符集检查(FURB156)
- refurb:为详细的小数构造函数添加更多特殊情况(FURB157)
- refurb:使用
UserString
替换不存在的UserStr
(FURB189) - ruff:避免将小写字母视为
# noqa
代码(RUF100) - ruff:当
Optional
没有类型参数时不报告(RUF013)
文档
- 为 F704 和 PLE1142 添加“笔记本行为”部分
- 记录修复安全性相关的注释策略