mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
c83156d0e0
* feat: pydantic dataclasses support built-in ones closes #744 * feat: improve dataclass typing * feat: add support for nested dataclasses closes #1743 * feat: support dataclass schema with nested dataclasses * refactor: remove `_dataclass_with_validation` function * docs: add docstring for `make_dataclass_validator` * refactor: rename DataclassType into Dataclass The name `DataclassType` was missleading as it's not a `Type` per say. * refactor: change global `dataclass` import to local pydantic import time was improved in https://github.com/samuelcolvin/pydantic/pull/1132 by keeping `dataclass` import local. So let's keep it that way! * test: add extra nested case with BaseModel * chore: s/pydantic/_pydantic_/g * docs: add some documentation
36 lines
575 B
Python
36 lines
575 B
Python
import dataclasses
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
import pydantic
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class Meta:
|
|
modified_date: Optional[datetime]
|
|
seen_count: int
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class File(Meta):
|
|
filename: str
|
|
|
|
|
|
File = pydantic.dataclasses.dataclass(File)
|
|
|
|
file = File(
|
|
filename=b'thefilename',
|
|
modified_date='2020-01-01T00:00',
|
|
seen_count='7',
|
|
)
|
|
print(file)
|
|
|
|
try:
|
|
File(
|
|
filename=['not', 'a', 'string'],
|
|
modified_date=None,
|
|
seen_count=3,
|
|
)
|
|
except pydantic.ValidationError as e:
|
|
print(e)
|