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
28 lines
483 B
Python
28 lines
483 B
Python
import dataclasses
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel, ValidationError
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class File:
|
|
filename: str
|
|
last_modification_time: Optional[datetime]
|
|
|
|
|
|
class Foo(BaseModel):
|
|
file: File
|
|
|
|
|
|
file = File(
|
|
filename=['not', 'a', 'string'],
|
|
last_modification_time='2020-01-01T00:00',
|
|
) # nothing is validated as expected
|
|
print(file)
|
|
|
|
try:
|
|
Foo(file=file)
|
|
except ValidationError as e:
|
|
print(e)
|