Как исправить ошибку MyPy [возвращаемое значение], когда тип действительно правильныйPython

Программы на Python
Ответить
Anonymous
 Как исправить ошибку MyPy [возвращаемое значение], когда тип действительно правильный

Сообщение Anonymous »

Я использую Django-Ninja + MyPy и получаю эту ошибку: полученный тип tuple[int, dict[str, str]]» неверен, поскольку не соответствует ни одному из типы tuple[int, None] | tuple[int, DetailType], но это точно так же, как и второй тип, поскольку в других частях кода он может правильно определиться с "detail" как ключ. как только я использую Union[...], он почему-то не может выглядеть рекурсивно?
apps/users/views.py:106: error: Incompatible return value type (got "tuple[int, Message]", expected "tuple[int, None] | tuple[int, DetailType]") [return-value]

Вот как выглядят мои типы:
DetailType = TypedDict("DetailType", {"detail": str})
MessageType = tuple[int, DetailType]
NoContentType = tuple[int, None]

И это полный код, в котором mypy возвращает ошибку:
@post("me/password/change/", response={204: None, 401: Message}, url_name="users_me_password_change")
def change_password(request: HttpRequest, data: ChangePasswordRequest) -> Union[NoContentType, MessageType]:

Подробнее здесь: https://stackoverflow.com/questions/781 ... ly-correct
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»