ds_common_serde_py_lib.serializable =================================== .. py:module:: ds_common_serde_py_lib.serializable .. autoapi-nested-parse:: **File:** ``serializable.py`` **Region:** ``ds_common_serde_py_lib`` Description ----------- Defines the public ``Serializable`` mixin for dataclasses, providing ``serialize()`` and ``deserialize()``. .. rubric:: Example .. code-block:: python 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: .. code-block:: python @dataclass class Example(Serializable): a: int secret: str = field(metadata={"serialize": False}) assert Example(a=1, secret="shh").serialize() == {"a": 1} Attributes ---------- .. autoapisummary:: ds_common_serde_py_lib.serializable.T ds_common_serde_py_lib.serializable.logger Classes ------- .. autoapisummary:: ds_common_serde_py_lib.serializable.Serializable Module Contents --------------- .. py:data:: T .. py:data:: logger .. py:class:: Serializable Mixin providing ``serialize``/``deserialize`` for dataclasses. .. py:attribute:: __deserializers__ :type: ClassVar[dict[str, Any]] .. py:method:: serialize() -> dict[str, Any] 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. .. py:method:: deserialize(data: collections.abc.Mapping[str, Any]) -> T :classmethod: Create an instance from a mapping. :param data: A dictionary representing the serialized data. :returns: An instance of the dataclass. :raises DeserializationError: If `data` cannot be converted into an instance.