Как набрать кортеж класса подсказки, а не экземпляр, не жалуясь на pylancePython

Программы на Python
Ответить
Anonymous
 Как набрать кортеж класса подсказки, а не экземпляр, не жалуясь на pylance

Сообщение Anonymous »

Я пытаюсь намекнуть, что поле Pydantic BaseModel должно быть кортежем класса или одним из его подклассов, поэтому я напечатал поле как type[tuple]:

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

from pydantic import BaseModel

class Task1(BaseModel):
result_formatter: type[tuple]
Однако линтер Pylance жалуется (в строгом режиме), что:

'Ожидаемые аргументы типа для универсального класса "tuple"

Чтобы это исправить, я изменил его на type[tuple[str, ...]]:

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

from typing import Any
from pydantic import BaseModel

class Task2(BaseModel):
result_formatter: type[tuple[Any]]
Однако это приводит к ошибке BaseModel:

pydantic.errors.PydanticUserError: Подписка типа[] с уже параметризованным типом не поддерживается. Вместо использования type[tuple[typing.Any, ...]] используйте type[tuple].

Есть ли какое-нибудь решение, которое сделает линтер счастливым при работе с BaseModel?

Подробнее здесь: https://stackoverflow.com/questions/798 ... omplaining
Ответить

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

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

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

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

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