Моя цель-избегать написания < /p>
Код: Выделить всё
GenericTraining[Discriminate[L1LossConfig]]
< /code>
снова и снова-я хотел бы получить псевдоним, чтобы я мог сделать < /p>
TrainingLike[L1LossConfig]
минимальный воспроизводимый пример
from typing import Annotated, Literal
from pydantic import BaseModel, Field
class L1LossConfig(BaseModel):
loss_type: Literal["l1"] = "l1"
class GenericTraining[LossT](BaseModel):
loss: LossT
type Discriminate[T] = Annotated[T, Field(discriminator="loss_type")]
# -----------------------------------------------------------------------------
#
Training1 = GenericTraining[Discriminate[L1LossConfig]]
Training1.model_rebuild() #
#
type TrainingLike[T] = GenericTraining[Discriminate[T]]
Training2 = TrainingLike[L1LossConfig]
Training2.model_rebuild() #
< /code>
Как я могу провести обучение [l1lossconfig] < /code> ведут себя точно так же, как
Код: Выделить всё
GenericTraining[Discriminate[L1LossConfig]]
Подробнее здесь: https://stackoverflow.com/questions/796 ... ns-typeali