Composite Serializers
Packet serializer composite module.
- final class easynetwork.serializers.composite.StapledPacketSerializer
Bases:
AbstractPacketSerializer,GenericA composite serializer that merges two serializers.
See also
- How-to — Serializer Combinations
This class cannot be used directly with a
StreamProtocol. This page explains possible workarounds.
- property sent_packet_serializer: AbstractPacketSerializer[SentDTOPacket, Any]
Sent packet serializer.
- property received_packet_serializer: AbstractPacketSerializer[Any, ReceivedDTOPacket]
Received packet serializer.
- serialize(packet: SentDTOPacket) bytes
Calls
self.sent_packet_serializer.serialize(packet).- Parameters:
packet (SentDTOPacket) – The Python object to serialize.
- Returns:
a byte sequence.
- Return type:
- deserialize(data: bytes) ReceivedDTOPacket
Calls
self.received_packet_serializer.deserialize(data).- Parameters:
data (bytes) – The byte sequence to deserialize.
- Raises:
DeserializeError – An unrelated deserialization error occurred.
- Returns:
the deserialized Python object.
- Return type:
ReceivedDTOPacket
- final class easynetwork.serializers.composite.StapledIncrementalPacketSerializer
Bases:
StapledPacketSerializer,AbstractIncrementalPacketSerializer,GenericA composite serializer that merges two incremental serializers.
- property sent_packet_serializer: AbstractPacketSerializer[SentDTOPacket, Any]
Sent packet serializer.
- property received_packet_serializer: AbstractPacketSerializer[Any, ReceivedDTOPacket]
Received packet serializer.
- incremental_serialize(packet: SentDTOPacket) Generator[bytes]
Calls
self.sent_packet_serializer.incremental_serialize(packet).
- incremental_deserialize() Generator[None, bytes, tuple[ReceivedDTOPacket, bytes]]
Calls
self.received_packet_serializer.incremental_deserialize().
- deserialize(data: bytes) ReceivedDTOPacket
Calls
self.received_packet_serializer.deserialize(data).- Parameters:
data (bytes) – The byte sequence to deserialize.
- Raises:
DeserializeError – An unrelated deserialization error occurred.
- Returns:
the deserialized Python object.
- Return type:
ReceivedDTOPacket
- final class easynetwork.serializers.composite.StapledBufferedIncrementalPacketSerializer
Bases:
StapledIncrementalPacketSerializer,BufferedIncrementalPacketSerializer,GenericA composite serializer that merges two incremental serializers with manual control of the receive buffer.
- deserialize(data: bytes) ReceivedDTOPacket
Calls
self.received_packet_serializer.deserialize(data).- Parameters:
data (bytes) – The byte sequence to deserialize.
- Raises:
DeserializeError – An unrelated deserialization error occurred.
- Returns:
the deserialized Python object.
- Return type:
ReceivedDTOPacket
- incremental_deserialize() Generator[None, bytes, tuple[ReceivedDTOPacket, bytes]]
Calls
self.received_packet_serializer.incremental_deserialize().
- incremental_serialize(packet: SentDTOPacket) Generator[bytes]
Calls
self.sent_packet_serializer.incremental_serialize(packet).
- serialize(packet: SentDTOPacket) bytes
Calls
self.sent_packet_serializer.serialize(packet).- Parameters:
packet (SentDTOPacket) – The Python object to serialize.
- Returns:
a byte sequence.
- Return type:
- property sent_packet_serializer: AbstractPacketSerializer[SentDTOPacket, Any]
Sent packet serializer.
- property received_packet_serializer: AbstractPacketSerializer[Any, ReceivedDTOPacket]
Received packet serializer.
- create_deserializer_buffer(sizehint: int) BufferType
Calls
self.received_packet_serializer.create_deserializer_buffer(sizehint).- Parameters:
sizehint (int) – the recommended size (in bytes) for the returned buffer. It is acceptable to return smaller or larger buffers than what sizehint suggests.
- Returns:
an object implementing the buffer protocol. It is an error to return a buffer with a zero size.
- Return type:
BufferType
- buffered_incremental_deserialize(buffer: BufferType) Generator[int | None, int, tuple[ReceivedDTOPacket, Buffer]]
Calls
self.received_packet_serializer.buffered_incremental_deserialize(buffer).- Parameters:
buffer (BufferType) – The buffer allocated by
create_deserializer_buffer().- Raises:
IncrementalDeserializeError – An unrelated deserialization error occurred.
- Yields:
until the whole packet has been deserialized.
- Returns:
a tuple with the deserialized Python object and the unused trailing data.
The remainder can be a
memoryviewpointing to buffer or an external bytes-like object.- Return type:
Generator[int | None, int, tuple[ReceivedDTOPacket, Buffer]]
See also
- How-to — Serializer Composition
Describes where and when a composite serializer is used.