Pydantic 数据转换和 PyCharm 的 PyTypeChecker



根据文档,">pydantic可以强制转换输入数据以强制其符合模型字段类型[…]">

下面的代码按预期工作:

>>> from pydantic import BaseModel
>>> class Foo(BaseModel):
...     bar: int
>>> foo = Foo(bar="3")     # Passing a string

和mymyy没有抱怨,但PyCharm的PyTypeChecker做:

Expected type 'int', got 'str' instead

有什么方法可以让我继续使用自动数据转换,避免检查错误(除了禁用检查)?

使用Python 3.8.10, Pydantic 1.8.2, Mypy 0.910, PyCharm2021.2.22021.2.3

您可以使用pydanticPycharm插件。它的一步一步的设置可以在官方页面找到。

作为一种解决方案,你可以指定你使用的类型为可解析(或可接受),并在配置文件中禁用对它们的警告。这种禁用只对您指定的类型有效。例如:

# pyproject.toml
[tool.pydantic-pycharm-plugin.parsable-types]
# int field accepts to parse str
"int" = ["str"]
[tool.pydantic-pycharm-plugin]
# You can set higlith level (default is "warning")
# You can select it from "warning",  "weak_warning", "disable"
parsable-type-highlight = "disable"
acceptable-type-highlight = "disable"

顺便说一下,这个插件是在pydantic官方页面上提到的。

最新更新