File: pydantic_v2_union_default_object.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 (22 lines) | stat: -rw-r--r-- 670 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
# generated by datamodel-codegen:
#   filename:  union_default_object.yaml
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from typing import Dict, Optional, Union

from pydantic import BaseModel, Field


class Interval(BaseModel):
    start: Optional[int] = None
    end: Optional[int] = None


class Container(BaseModel):
    interval_or_string: Optional[Union[Interval, str]] = Field(
        default_factory=lambda: Interval.model_validate({'start': 2009, 'end': 2019})
    )
    string_or_interval: Optional[Union[Interval, str]] = 'some string value'
    dict_or_interval: Optional[Union[Dict[str, str], Interval]] = {'key': 'value'}