Ошибки VSCode Pylance в типе ответа FastAPI, который преобразуетсяPython

Программы на Python
Ответить
Anonymous
 Ошибки VSCode Pylance в типе ответа FastAPI, который преобразуется

Сообщение Anonymous »

Я использую VSCode и расширение поддержки языка Python по умолчанию от MS, которое работает с Pylance. У меня есть проект FastAPI Python 3.12, который использует аннотации типов, чтобы указать, какие модели должны быть возвращены в качестве ответов от обработчиков, используя шаблон, предложенный документацией FastAPI (https://fastapi.tiangolo.com/tutorial/r ... -filtering). При запуске кода ошибок не возникает, а приложение работает правильно, возвращая правильные результаты в правильных моделях. Однако я получаю ошибки проверки Pylance, что типы возвращаемых значений моей функции несовместимы с моими возвращаемыми значениями.
Вот мои модели FastAPI SQLModel/Pydantic:

Код: Выделить всё

class PetBase(SQLModel):
name: str

class Pet(PetBase, table=True):
id: str

class PetOutgoing(PetBase):
id: str
Вот мой обработчик:

Код: Выделить всё

@router.get("/{pet_id}")
def retrieve_one(pet_id: str) -> PetOutgoing:
pet: Pet = get_pet_by_id(pet_id)
return pet
Эта конечная точка возвращает модель PetOutgoing. FastAPI преобразует его на лету.
Но вот я получаю ошибку проверки Pylance.

Код: Выделить всё

Expression of type "Pet" is incompatible with return type "PetOutgoing"
"Pet" is incompatible with "PetOutgoing" PylancereportReturnType
(variable) pet: Pet
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/788 ... t-converts
Ответить

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

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

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

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

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