根据文档,">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
您可以使用pydantic
Pycharm插件。它的一步一步的设置可以在官方页面找到。
作为一种解决方案,你可以指定你使用的类型为可解析(或可接受),并在配置文件中禁用对它们的警告。这种禁用只对您指定的类型有效。例如:
# 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官方页面上提到的。