mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
21 lines
402 B
Python
21 lines
402 B
Python
from typing import Literal, Union
|
|
|
|
from typing_extensions import Annotated
|
|
|
|
from pydantic import BaseModel, Field, schema_json_of
|
|
|
|
|
|
class Cat(BaseModel):
|
|
pet_type: Literal['cat']
|
|
cat_name: str
|
|
|
|
|
|
class Dog(BaseModel):
|
|
pet_type: Literal['dog']
|
|
dog_name: str
|
|
|
|
|
|
Pet = Annotated[Union[Cat, Dog], Field(discriminator='pet_type')]
|
|
|
|
print(schema_json_of(Pet, title='The Pet Schema', indent=2))
|