Как определить схему pydantic-core, которая представляет следующий тип?
Код: Выделить всё
class CommonBase(BaseModel, ABC):
@model_validator(mode="wrap")
@classmethod
def validate_dat(cls, data, handler, info) -> Self:
...
# Other stuff...
class ClrMamePro(CommonBase):
...
class Game(CommonBase):
...
class ParsedDatFile(RootModel):
root: tuple[ClrMamePro, *tuple[Game, ...]]
Я определил ParsedDatFile следующим образом:
Код: Выделить всё
class ParsedDatFile(RootModel, frozen=True):
root: tuple[ClrMamePro, *tuple[Game, ...]]
@override
@classmethod
def __get_pydantic_core_schema__(cls, source_type, handler):
return core_schema.tuple_schema(
[ClrMamePro.__pydantic_core_schema__, Game.__pydantic_core_schema__],
variadic_item_index=1,
min_length=1,
)
ParsedDatFile.model_rebuild()
Подробнее здесь: https://stackoverflow.com/questions/798 ... ack-tuples
Мобильная версия