File: external_files_in_directory.py

package info (click to toggle)
python-datamodel-code-generator 0.45.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,052 kB
  • sloc: python: 29,621; makefile: 15
file content (77 lines) | stat: -rw-r--r-- 1,737 bytes parent folder | download
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# generated by datamodel-codegen:
#   filename:  person.json
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from enum import Enum
from typing import List, Optional, Union

from pydantic import BaseModel, Extra, Field, conint


class Fur(Enum):
    Short_hair = 'Short hair'
    Long_hair = 'Long hair'


class Noodle(Enum):
    ramen = 'ramen'
    spaghetti = 'spaghetti'


class Soup(Enum):
    bean = 'bean'
    mushroom = 'mushroom'
    tomato = 'tomato'


class Coffee(Enum):
    Black = 'Black'
    Espresso = 'Espresso'


class Tea(Enum):
    Oolong = 'Oolong'
    Green = 'Green'


class Pet(BaseModel):
    name: Optional[str] = None
    age: Optional[int] = None
    fur: Optional[Fur] = None


class Friend(BaseModel):
    class Config:
        extra = Extra.allow

    name: str = Field(..., example='John Doe')
    phone_number: Optional[str] = Field(None, example='(555) 555-1234')
    food: Optional[List[Union[Noodle, Soup]]] = None


class Friends(BaseModel):
    __root__: List[Friend] = Field(..., title='Friends')


class Person(BaseModel):
    first_name: str = Field(..., description="The person's first name.")
    last_name: str = Field(..., description="The person's last name.")
    age: Optional[conint(ge=0)] = Field(None, description='Age in years.')
    pets: Optional[List[Pet]] = None
    friends: Optional[Friends] = None
    robot: Optional[Robot] = None
    comment: None = None
    drink: Optional[List[Union[Coffee, Tea]]] = None
    food: Optional[List[Union[Noodle, Soup]]] = None


class Robot(Pet):
    friends: Optional[Person] = None
    drink: Optional[Coffee] = None
    food: Optional[Noodle] = None
    pet: Optional[Pet] = None


Person.update_forward_refs()