pydantic与mypy的用法

时间:2019-10-21 12:28:30

标签: python mypy fastapi pydantic

我正在尝试使用快速使用pydantic的FastAPI编写应用程序。另外,我想使用mypy对我的代码进行类型检查。如何为pydantic和mypy使用类型注释而不会发生冲突?

我知道type: ignore条评论,但我认为这是一种欺骗:)

示例:

from pydantic import BaseModel, Schema


class UsersQuery(BaseModel):
    limit: int = Schema(default=100, gt=0, le=100)
    offset: int = Schema(default=0, ge=0)

此代码可正常运行,但无法进行类型检查。

mypy输出:

error: Incompatible types in assignment (expression has type "Schema", variable has type "int")
error: Incompatible types in assignment (expression has type "Schema", variable has type "int")

1 个答案:

答案 0 :(得分:2)

type: ignore是目前唯一的解决方案。

pydantic的版本1应该在几天之内发布,其中Field(在v1中代替Schema)是返回Any的函数,应该可以解决此问题。

tl; dr等待fastapi发行并支持v1,您的问题应得到解决。