ds_common_serde_py_lib.serializable¶
File: serializable.py
Region: ds_common_serde_py_lib
Description¶
Defines the public Serializable mixin for dataclasses, providing
serialize() and deserialize().
Example
from dataclasses import dataclass
from dataclasses import field
from ds_common_serde_py_lib import Serializable
@dataclass
class Child(Serializable):
count: int
payload = Child(count=1).serialize()
obj = Child.deserialize(payload)
assert obj == Child(count=1)
Field omission¶
You can omit specific dataclass fields from serialization by setting field metadata:
@dataclass
class Example(Serializable):
a: int
secret: str = field(metadata={"serialize": False})
assert Example(a=1, secret="shh").serialize() == {"a": 1}
Attributes¶
Classes¶
Mixin providing |
Module Contents¶
- ds_common_serde_py_lib.serializable.T¶
- ds_common_serde_py_lib.serializable.logger¶
- class ds_common_serde_py_lib.serializable.Serializable[source]¶
Mixin providing
serialize/deserializefor dataclasses.- __deserializers__: ClassVar[dict[str, Any]]¶
- serialize() dict[str, Any][source]¶
Return a JSON-serializable representation of the dataclass.
- Returns:
A dictionary representing the serialized data.
- Raises:
SerializationError – If serialization fails or does not produce a mapping.
- classmethod deserialize(data: collections.abc.Mapping[str, Any]) T[source]¶
Create an instance from a mapping.
- Parameters:
data – A dictionary representing the serialized data.
- Returns:
An instance of the dataclass.
- Raises:
DeserializationError – If data cannot be converted into an instance.