Pydantic Union

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2025 Jun 4 11:26
Editor
Edited
Edited
2025 Jun 4 11:31
Refs
Refs
 
 
 
 
 

Discriminated union (
Tagged Unions
) for static typing

class Cat(BaseModel): pet_type: Literal['cat'] meows: int class Dog(BaseModel): pet_type: Literal['dog'] barks: float class Lizard(BaseModel): pet_type: Literal['reptile', 'lizard'] scales: bool class Model(BaseModel): pet: Union[Cat, Dog, Lizard] = Field(discriminator='pet_type') n: int print(Model(pet={'pet_type': 'dog', 'barks': 3.14}, n=1)) #> pet=Dog(pet_type='dog', barks=3.14) n=1 try: Model(pet={'pet_type': 'dog'}, n=1) except ValidationError as e: print(e) """
Unions - Pydantic
Data validation using Python type hints
Unions - Pydantic
 
 

Recommendations