archimedes.tree.struct.dataclass_transformΒΆ
- archimedes.tree.struct.dataclass_transform(*, eq_default: bool = True, order_default: bool = False, kw_only_default: bool = False, frozen_default: bool = False, field_specifiers: tuple[type[Any] | Callable[[...], Any], ...] = (), **kwargs: Any) _IdentityCallable ΒΆ
Decorator to mark an object as providing dataclass-like behaviour.
The decorator can be applied to a function, class, or metaclass.
Example usage with a decorator function:
@dataclass_transform() def create_model[T](cls: type[T]) -> type[T]: ... return cls @create_model class CustomerModel: id: int name: str
On a base class:
@dataclass_transform() class ModelBase: ... class CustomerModel(ModelBase): id: int name: str
On a metaclass:
@dataclass_transform() class ModelMeta(type): ... class ModelBase(metaclass=ModelMeta): ... class CustomerModel(ModelBase): id: int name: str
The
CustomerModel
classes defined above will be treated by type checkers similarly to classes created with@dataclasses.dataclass
. For example, type checkers will assume these classes have__init__
methods that acceptid
andname
.The arguments to this decorator can be used to customize this behavior: -
eq_default
indicates whether theeq
parameter is assumed to beTrue
orFalse
if it is omitted by the caller.order_default
indicates whether theorder
parameter isassumed to be True or False if it is omitted by the caller.
kw_only_default
indicates whether thekw_only
parameter isassumed to be True or False if it is omitted by the caller.
frozen_default
indicates whether thefrozen
parameter isassumed to be True or False if it is omitted by the caller.
field_specifiers
specifies a static list of supported classesor functions that describe fields, similar to
dataclasses.field()
.
- Arbitrary other keyword arguments are accepted in order to allow for
possible future extensions.
At runtime, this decorator records its arguments in the
__dataclass_transform__
attribute on the decorated object. It has no other runtime effect.See PEP 681 for more details.