academy.serialize¶
default_serializer
module-attribute
¶
default_serializer: ContextVar[SerializationStrategy] = (
ContextVar("default_serializer", default=PICKLE)
)
Default serialization method used to send requests.
allowed_deserializers
module-attribute
¶
allowed_deserializers: ContextVar[
set[SerializationStrategy]
] = ContextVar(
"allowed_deserializers", default=ALL_SERIALIZERS
)
Deserializers allowed in this context.
NoPickleMixin
¶
Mixin that raises an error if a type is pickled.
Serializer
¶
JsonSerializer
¶
Serializes objects into json.
Works only on basic python types, but allows deserialization without arbitrary code execution, and is compatible between python versions.
serialize
classmethod
¶
PickleSerializer
¶
Serializes objects using pickle.
Seriliazes objects using pickle. Generally allows for a wider range of types to be serialized, but cannot deserialize without allowing arbitrary code execution. Sending pickled python objects between processes with different python versions or different environments can lead to unexpected results.
serialize
classmethod
¶
json_exception_serializer
¶
Serialize exceptions as json.
Extension to json serialization to deal with arbitrary exceptions.
Source code in academy/serialize.py
json_exception_deserializer
¶
Deserialize exceptions from json.
Extension to json serializer that parses serialized exceptions into a RemoteException.
Source code in academy/serialize.py
serialize
¶
serialize(obj: Any, strategy: SerializationStrategy) -> str
Serialize object using strategy.
Parameters:
-
obj(Any) –Object to be serialized.
-
strategy(SerializationStrategy) –Strategy used for serialization.
Returns:
-
str–Serialized data.
Source code in academy/serialize.py
deserialize
¶
deserialize(
obj: str, strategy: SerializationStrategy
) -> Any
Deserialize object using strategy.
Parameters:
-
obj(str) –Json data.
-
strategy(SerializationStrategy) –Strategy used for serialization.
Returns:
-
Any–Deserialized object.