1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
# generated by datamodel-codegen:
# filename: root_model_ordering.json
# timestamp: 2019-07-26T00:00:00+00:00
from __future__ import annotations
from typing import List, Literal, Optional, Union
from pydantic import BaseModel, Field, RootModel
class Zoo(BaseModel):
animals: Optional[List[Animals]] = Field(default_factory=list, title='Animals')
class Dog(BaseModel):
name: Literal['dog'] = Field('dog', title='woof')
friends: Optional[List[Friends]] = Field(default_factory=list, title='Friends')
class Cat(BaseModel):
name: Literal['cat'] = Field('cat', title='meow')
friends: Optional[List[Friends]] = Field(default_factory=list, title='Friends')
class Bird(BaseModel):
name: Literal['bird'] = Field('bird', title='chirp')
friends: Optional[List[Friends]] = Field(default_factory=list, title='Friends')
class Animals(RootModel[Union[Dog, Cat, Bird]]):
root: Union[Dog, Cat, Bird] = Field(..., discriminator='name', title='Animal')
class Friends(RootModel[Union[Dog, Cat, Bird]]):
root: Union[Dog, Cat, Bird] = Field(..., discriminator='name', title='Animal')
Zoo.model_rebuild()
Dog.model_rebuild()
Cat.model_rebuild()
Bird.model_rebuild()
|