communication.serialization module¶
This module contains the serialization logic used in sending and receiving arbitrary objects.
- exception communication.serialization.AnnotationError[source]¶
Bases:
Exception
Raised when an improperly function is incorrectly annotated
- exception communication.serialization.RepetitionError[source]¶
Bases:
Exception
Raised when the action has already been performed and should not be repeated
- class communication.serialization.Serialization[source]¶
Bases:
object
Virtual class that provides packing and unpacking functions used for communications. The outline is as follows: - serialization functions for different classes - packing function that handles metadata and determines which serialization needs to happen
deserialization functions for different classes
unpacking function that handles metadata and determines which deserialization needs to happen
- static bitarray_deserialize(obj, **_kwargs)[source]¶
Function for deserializing bitarrays
- Parameters:
obj (
bytes
) – object to deserialize**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
bitarray
- Returns:
deserialized bitarray object
- static bitarray_serialize(obj, **_kwargs)[source]¶
Function for serializing bitarray
- Parameters:
obj (
bitarray
) – bitarray object to serialize**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
bytes
- Returns:
serialized object
- static clear_new_serialization_logic()[source]¶
Clear all custom serialization (and deserialization) logic that was added to this class.
- Return type:
None
- static collection_deserialize(collection_obj, **kwargs)[source]¶
Function for deserializing collections
- Parameters:
collection_obj (
Union
[List
[Any
],Dict
[str
,Any
]]) – object to deserialize**kwargs (
Any
) – optional extra keyword arguments
- Raises:
ValueError – raised when (nested) value cannot be deserialized
- Return type:
Union
[Dict
[str
,Any
],List
[Any
]]- Returns:
deserialized collection
- custom_deserialization_funcs:
ClassVar
[Dict
[str
,Callable
[[Any
,Any
],SupportsSerialization
]]] = {}¶
- custom_serialization_funcs:
ClassVar
[Dict
[str
,Callable
[[SupportsSerialization
,Any
],Any
]]] = {}¶
- static default_deserialize(obj, use_pickle=False, **_kwargs)[source]¶
Fall-back function is case no specific deserialization function is available. This function uses the pickle library
- Parameters:
obj (
bytes
) – object to deserializeuse_pickle (
bool
) – set to true if one wishes to use pickle as a fallback deserializer**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
Any
- Returns:
deserialized object
- static default_serialize(obj, use_pickle, **_kwargs)[source]¶
Fall-back function is case no specific serialization function is available. This function uses the pickle library
- Parameters:
obj (
Any
) – object to serializeuse_pickle (
bool
) – set to true if one wishes to use pickle as a fallback serializer**_kwargs (
Any
) – optional extra keyword arguments
- Raises:
NotImplementedError – raised when no serialization function is defined for object
- Return type:
bytes
- Returns:
serialized object
- static deserialize(obj, use_pickle=False, **kwargs)[source]¶
Function that detects which deserialization function should be run and calls it
- Parameters:
obj (
Any
) – object to deserializeuse_pickle (
bool
) – set to true if one wishes to use pickle as a fallback deserializer**kwargs (
Any
) – optional extra keyword arguments
- Return type:
Any
- Returns:
deserialized object
- static gmpy_deserialize(obj, **_kwargs)[source]¶
Function for deserializing gmpy objects
- Parameters:
obj – object to deserialize
**_kwargs – optional extra keyword arguments
- Returns:
deserialized gmpy object
- static gmpy_serialize(obj, **_kwargs)[source]¶
Function for serializing gmpy objects
- Parameters:
obj – gmpy object to serialize
**_kwargs – optional extra keyword arguments
- Returns:
serialized object
- static int_deserialize(obj, **_kwargs)[source]¶
Function for deserializing Python ints
- Parameters:
obj (
bytes
) – object to deserialize**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
int
- Returns:
deserialized int object
- static int_serialize(obj, **_kwargs)[source]¶
Function for serializing Python ints
- Parameters:
obj (
int
) – int object to serialize**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
bytes
- Returns:
serialized object
- static numpy_deserialize(obj, **kwargs)[source]¶
Function for serializing numpy object arrays
- Parameters:
obj (
Dict
[str
,List
[Any
]]) – numpy object to serialize**kwargs (
Any
) – optional extra keyword arguments
- Return type:
ndarray
[tuple
[int
,...
],dtype
[object_
]]- Returns:
deserialized object
- static numpy_serialize(obj, **_kwargs)[source]¶
Function for serializing numpy object arrays
- Parameters:
obj (
ndarray
[tuple
[int
,...
],dtype
[Any
]]) – numpy object to serialize**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
Dict
[str
,List
[Any
]]- Returns:
serialized object
- static pack(obj, msg_id, use_pickle, option=392, **kwargs)[source]¶
Function that adds metadata and serializes the object for transmission.
- Parameters:
obj (
Any
) – object to packmsg_id (
Union
[str
,int
]) – message identifier associated to the messageuse_pickle (
bool
) – set to true if one wishes to use pickle as a fallback packeroption (
Optional
[int
]) – ormsgpack options can be specified through this parameter**kwargs (
Any
) – optional extra keyword arguments
- Return type:
bytes
- Returns:
packed object (serialized and annotated)
- static serialize(obj, use_pickle, **kwargs)[source]¶
Function that detects with serialization function should be used and applies it
- Parameters:
obj (
Any
) – object to serializeuse_pickle (
bool
) – set to true if one wishes to use pickle as a fallback serializer**kwargs (
Any
) – optional extra keyword arguments
- Return type:
Union
[bytes
,Dict
[str
,bytes
]]- Returns:
serialized object
- static set_serialization_logic(obj_class, check_annotations=True)[source]¶
Function for storing serialization logic for classes that have not been specified here or need to be overridden
- Parameters:
obj_class (
Type
[SupportsSerialization
]) – object class to set serialization logic forcheck_annotations (
bool
) – validate return annotation of the serialization logic
- Raises:
RepetitionError – raised when serialization function is already defined for object class
TypeError – raised when provided object class has no (de)serialization function
AnnotationError – raised when the return annotation is inconsistent
- Return type:
None
- static tuple_deserialize(obj, **kwargs)[source]¶
Function for deserializing tuples
- Parameters:
obj (
List
[Any
]) – object to deserialize**kwargs (
Any
) – optional extra keyword arguments
- Return type:
Tuple
[Any
,...
]- Returns:
deserialized tuple object
- static tuple_serialize(obj, **_kwargs)[source]¶
Function for serializing tuples
- Parameters:
obj (
Tuple
[Any
,...
]) – tuple object to serialize**_kwargs (
Any
) – optional extra keyword arguments
- Return type:
List
[Any
]- Returns:
serialized object
- static unpack(obj, use_pickle=False, option=None, **kwargs)[source]¶
Function that handles metadata and turns the bytes object into a python object
- Parameters:
obj (
bytes
) – bytes object to unpackuse_pickle (
bool
) – set to true if one wishes to use pickle as a fallback deserializeroption (
Optional
[int
]) – ormsgpack options can be specified through this parameter**kwargs (
Any
) – optional extra keyword arguments
- Return type:
Tuple
[str
,Any
]- Returns:
unpacked object
- class communication.serialization.SupportsSerialization(*args, **kwargs)[source]¶
Bases:
Protocol
Type placeholder for classes supporting custom serialization.