typed_data_converter

Converters that pack and unpack serialized data and type information into various combined representation formats.

class parityos_serialization.utils.typed_data_converter.TypedDataConverter

Bases: Generic[TypedDataT], ABC

Base class for converters that inject and extract class information to and from serialized data.

abstractmethod inject_class_tag(class_tag: str, data: Any) TypedDataT

Combine serialized data and class information class_tag during serialization.

Parameters:
  • class_tag – Tag for class that got serialized to data.

  • data – Serialized data.

Returns:

Combined representation of class information and serialized data.

Return type:

typed_data

abstractmethod extract_class_tag(typed_data: Any) tuple[str, Any]

Extract class_tag and serialized data from combined representation during deserialization.

Parameters:

typed_data – Combined representation of class information and serialized data.

Returns:

Class tag for target class lookup. data (Any): Serialized data.

Return type:

class_tag (str)

abstractmethod classmethod is_self_type(obj: object) TypeIs[TypedDataT]

Check whether obj is of the typed data type expected by this TypedDataConverter.

class parityos_serialization.utils.typed_data_converter.DictTypedDataConverter

Bases: TypedDataConverter[TypedDataDict]

Converts serialized data to and from a TypedDataDict.

inject_class_tag(class_tag: str, data: Any) TypedDataDict

Combine serialized data and class information class_tag into a TypedDataDict.

Parameters:
  • class_tag – Tag for class that got serialized to data.

  • data – Serialized data.

Returns:

Combined representation of class information and serialized data.

Return type:

typed_data_dict

extract_class_tag(typed_data: TypedDataDict) tuple[str, Any]

Extract class_tag and serialized data from a TypedDataDict.

Parameters:

typed_data – Combined representation of class information and serialized data.

Returns:

Class tag for target class lookup. data (Any): Serialized data.

Return type:

class_tag (str)

Raises:

DataError – if typed_data is not of type TypedDataDict.

classmethod is_self_type(obj: object) TypeIs[TypedDataDict]

Check whether obj is of the typed data type expected by this TypedDataConverter.

class parityos_serialization.utils.typed_data_converter.PairTypedDataConverter

Bases: TypedDataConverter[tuple[str, Any]]

Converts serialized data to and from a TypedDataPair.

inject_class_tag(class_tag: str, data: Any) tuple[str, Any]

Combine serialized data and class information class_tag into a TypedDataPair.

Parameters:
  • class_tag – Tag for class that got serialized to data.

  • data – Serialized data.

Returns:

Combined representation of class information and serialized data.

Return type:

typed_data_pair

extract_class_tag(typed_data: tuple[str, Any]) tuple[str, Any]

Extract class_tag and serialized data from a TypedDataPair.

Parameters:

typed_data – Combined representation of class information and serialized data.

Returns:

Class tag for target class lookup. data (Any): Serialized data.

Return type:

class_tag (str)

Raises:

DataError – if typed_data is not of type TypedDataPair.

classmethod is_self_type(obj: object) TypeIs[tuple[str, Any]]

Check whether obj is of the typed data type expected by this TypedDataConverter.