Я использую 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