Dataclasses
Provide an enhanced dataclass that performs validation.
def dataclass(
init: Literal[False] = False,
repr: bool = True,
eq: bool = True,
order: bool = False,
unsafe_hash: bool = False,
frozen: bool = False,
config: ConfigDict | type[object] | None = None,
validate_on_init: bool | None = None,
kw_only: bool = ...,
slots: bool = ...,
) -> Callable[[type[_T]], type[PydanticDataclass]]
def dataclass(
_cls: type[_T],
init: Literal[False] = False,
repr: bool = True,
eq: bool = True,
order: bool = False,
unsafe_hash: bool = False,
frozen: bool | None = None,
config: ConfigDict | type[object] | None = None,
validate_on_init: bool | None = None,
kw_only: bool = ...,
slots: bool = ...,
) -> type[PydanticDataclass]
def dataclass(
init: Literal[False] = False,
repr: bool = True,
eq: bool = True,
order: bool = False,
unsafe_hash: bool = False,
frozen: bool | None = None,
config: ConfigDict | type[object] | None = None,
validate_on_init: bool | None = None,
) -> Callable[[type[_T]], type[PydanticDataclass]]
def dataclass(
_cls: type[_T],
init: Literal[False] = False,
repr: bool = True,
eq: bool = True,
order: bool = False,
unsafe_hash: bool = False,
frozen: bool | None = None,
config: ConfigDict | type[object] | None = None,
validate_on_init: bool | None = None,
) -> type[PydanticDataclass]
A decorator used to create a Pydantic-enhanced dataclass, similar to the standard Python dataclass,
but with added validation.
This function should be used similarly to dataclasses.dataclass.
Callable[[type[_T]], type[PydanticDataclass]] | type[PydanticDataclass] — A decorator that accepts a class as its argument and returns a Pydantic dataclass.
The target dataclass.
Included for signature compatibility with dataclasses.dataclass, and is passed through to
dataclasses.dataclass when appropriate. If specified, must be set to False, as pydantic inserts its
own __init__ function.
repr : bool Default: True
A boolean indicating whether to include the field in the __repr__ output.
eq : bool Default: True
Determines if a __eq__ method should be generated for the class.
order : bool Default: False
Determines if comparison magic methods should be generated, such as __lt__, but not __eq__.
unsafe_hash : bool Default: False
Determines if a __hash__ method should be included in the class, as in dataclasses.dataclass.
Determines if the generated class should be a ‘frozen’ dataclass, which does not allow its
attributes to be modified after it has been initialized. If not set, the value from the provided config argument will be used (and will default to False otherwise).
config : ConfigDict | type[object] | None Default: None
The Pydantic config to use for the dataclass.
A deprecated parameter included for backwards compatibility; in V2, all Pydantic dataclasses are validated on init.
kw_only : bool Default: False
Determines if __init__ method parameters must be specified by keyword only. Defaults to False.
slots : bool Default: False
Determines if the generated class should be a ‘slots’ dataclass, which does not allow the addition of
new attributes after instantiation.
AssertionError— Raised ifinitis notFalseorvalidate_on_initisFalse.
def rebuild_dataclass(
cls: type[PydanticDataclass],
force: bool = False,
raise_errors: bool = True,
_parent_namespace_depth: int = 2,
_types_namespace: MappingNamespace | None = None,
) -> bool | None
Try to rebuild the pydantic-core schema for the dataclass.
This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.
This is analogous to BaseModel.model_rebuild.
bool | None — Returns None if the schema is already “complete” and rebuilding was not required.
bool | None — If rebuilding was required, returns True if rebuilding was successful, otherwise False.
cls : type[PydanticDataclass]
The class to rebuild the pydantic-core schema for.
force : bool Default: False
Whether to force the rebuilding of the schema, defaults to False.
raise_errors : bool Default: True
Whether to raise errors, defaults to True.
_parent_namespace_depth : int Default: 2
The depth level of the parent namespace, defaults to 2.
_types_namespace : MappingNamespace | None Default: None
The types namespace, defaults to None.
def is_pydantic_dataclass(class_: type[Any]) -> TypeGuard[type[PydanticDataclass]]
Whether a class is a pydantic dataclass.
TypeGuard[type[PydanticDataclass]] — True if the class is a pydantic dataclass, False otherwise.
The class.