invalid-pathlib-with-suffix (PTH210)
派生自 flake8-use-pathlib linter。
有时提供修复。
作用
检查 pathlib.Path.with_suffix()
调用,其中给定的后缀没有前导点,或者给定的后缀是单个点 "."
且 Python 版本低于 3.14。
为什么这不好?
如果给定的后缀没有以点开头,或者在 Python 3.14 之前的版本中,如果后缀是单个点 "."
,则 Path.with_suffix()
将在运行时引发错误。
示例
建议改为
已知问题
此规则很可能存在误报,因为 Ruff 只有在确定绑定在运行时引用 Path
对象时才会发出 lint。由于类型推断的限制,Ruff 目前只有在看到绑定来自用 Path
注释的函数参数或直接赋值给 Path()
构造函数调用时,才能确定这一点。
修复安全性
此规则的修复方法是在传递给 with_suffix()
调用的字符串中添加前导句点。此修复被标记为不安全,因为它会更改运行时行为:该调用以前总是会引发异常,但现在不会了。
此外,不可能确定这是否是给定情况的正确修复(字符串可能是正确的,但完全被传递给错误的方法,例如)。
如果给定后缀 "."
,则不提供修复,因为意图不明确。