在 mypy 中针对 PEP 585 引发弃用警告

问题描述 投票:0回答:1

在我正在进行的一个项目中,我们广泛使用类型提示。我们现在正在更新到 python 3.9,其扩展的类型提示功能在 PEP 585 中定义。在测试更改时我遇到了一个有趣的问题。

PEP 585 指出:

不推荐从打字中导入这些内容。由于 PEP 563 以及尽量减少输入对运行时影响的目的,此弃用不会生成 DeprecationWarnings。相反,当被检查程序的目标版本被标记为 Python 3.9 或更高版本时,类型检查器可能会警告此类已弃用的用法。建议在整个项目范围内消除这些警告。

但是在包含旧打字方式的代码上运行 mypy(例如:

tp.List[str]
而不是
list[str]
)mypy 不会引发弃用警告或任何类型的警告。

我错过了什么?

python mypy python-3.9 pep585
1个回答
0
投票

根据 mypy 维护者的说法,此功能将不会被实现,因为它已经由像

ruff
:

这样的格式化程序实现了

这已经由 Ruff 等 linter 实现(https://docs.astral.sh/ruff/rules/non-pep585-annotation/)。这并不意味着 mypy 也不能实现对此类检查的支持,但这确实意味着 mypy 添加此功能的投资回报率较低。

来源

© www.soinside.com 2019 - 2024. All rights reserved.