Skip to content

Interfaces

blake2signer.interfaces

Interfaces: abstract classes to define serializers, encoders and compressors.

CompressorInterface

Compressor interface.

Implement your own compressor inheriting from this class.

compress(self, data, *, level)

Compress given data.

Parameters:

Name Type Description Default
data bytes

Data to compress.

required
level int

Desired compression level.

required

Returns:

Type Description
bytes

Raw compressed data.

Source code in blake2signer/interfaces.py
@abstractmethod
def compress(self, data: bytes, *, level: int) -> bytes:
    """Compress given data.

    Args:
        data: Data to compress.
        level: Desired compression level.

    Returns:
        Raw compressed data.
    """

decompress(self, data)

Decompress given compressed data.

Parameters:

Name Type Description Default
data bytes

Compressed data to decompress.

required

Returns:

Type Description
bytes

Original data.

Source code in blake2signer/interfaces.py
@abstractmethod
def decompress(self, data: bytes) -> bytes:
    """Decompress given compressed data.

    Args:
        data: Compressed data to decompress.

    Returns:
        Original data.
    """

EncoderInterface

Encoder interface.

Implement your own encoder inheriting from this class.

Note

Verify that the encoder alphabet is ASCII (a check is enforced nevertheless).

alphabet: bytes property readonly

Return the encoder alphabet characters.

This is used to validate that separator characters and flags don't belong to this alphabet to prevent malfunctions.

decode(self, data)

Decode given encoded data.

Parameters:

Name Type Description Default
data bytes

Encoded data to decode.

required

Returns:

Type Description
bytes

Original data.

Source code in blake2signer/interfaces.py
@abstractmethod
def decode(self, data: bytes) -> bytes:
    """Decode given encoded data.

    Args:
        data: Encoded data to decode.

    Returns:
        Original data.
    """

encode(self, data)

Encode given data.

Parameters:

Name Type Description Default
data bytes

Data to encode.

required

Returns:

Type Description
bytes

Encoded data.

Source code in blake2signer/interfaces.py
@abstractmethod
def encode(self, data: bytes) -> bytes:
    """Encode given data.

    Args:
        data: Data to encode.

    Returns:
        Encoded data.
    """

SerializerInterface

Serializer interface.

Implement your own serializer inheriting from this class.

serialize(self, data, **kwargs)

Serialize given data.

Parameters:

Name Type Description Default
data Any

Data to serialize.

required
**kwargs Any

Additional arguments for the serializer.

{}

Returns:

Type Description
bytes

Serialized data

Source code in blake2signer/interfaces.py
@abstractmethod
def serialize(self, data: typing.Any, **kwargs: typing.Any) -> bytes:
    """Serialize given data.

    Args:
        data: Data to serialize.
        **kwargs: Additional arguments for the serializer.

    Returns:
        Serialized data
    """

unserialize(self, data, **kwargs)

Unserialize given serialized data.

Parameters:

Name Type Description Default
data bytes

Serialized data to unserialize.

required
**kwargs Any

Additional arguments for the serializer.

{}

Returns:

Type Description
Any

Original data.

Source code in blake2signer/interfaces.py
@abstractmethod
def unserialize(self, data: bytes, **kwargs: typing.Any) -> typing.Any:
    """Unserialize given serialized data.

    Args:
        data: Serialized data to unserialize.
        **kwargs: Additional arguments for the serializer.

    Returns:
        Original data.
    """