Использование Пидантик с Mypy - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь написать приложение, использующее FastAPI, которое интенсивно использует pydantic. Также я хотел бы проверить мой код, используя 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 output:

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 Ответ

2 голосов
/ 21 октября 2019

type: ignore является единственным решением на данный момент.

Версия 1 pydantic должна быть выпущена через несколько дней, когда Field (который заменяет Schema в v1) - это функция, возвращающая Anyкоторая должна решить эту проблему.

tl; dr подождите, пока v1 будет выпущен и поддержан fastapi, и ваша проблема должна быть решена.

...