Skip to content

hololinked.serializers.pickle.PickleSerializer

Bases: BaseSerializer

(de)serializer that wraps the pickle serialization protocol, use with encryption for safety.

Source code in repo/hololinked/hololinked/serializers/pickle.py
class PickleSerializer(BaseSerializer):
    """(de)serializer that wraps the pickle serialization protocol, use with encryption for safety."""

    def __init__(self) -> None:
        super().__init__()
        self.type = pickle

    def loads(self, data: bytearray | memoryview | bytes) -> Any:
        if global_config.ALLOW_PICKLE:
            return pickle.loads(self.convert_to_bytes(data))
            # SAST(id='hololinked.serializers.pickle.PickleSerializer.loads', description='B301:blacklist', tool='bandit')
        raise RuntimeError("Pickle deserialization is not allowed by the global configuration")

    def dumps(self, data: Any) -> bytes:
        if global_config.ALLOW_PICKLE:
            return pickle.dumps(data)
            # SAST(id='hololinked.serializers.pickle.PickleSerializer.dumps', description='B301:blacklist', tool='bandit')
        raise RuntimeError("Pickle serialization is not allowed by the global configuration")

    @property
    def content_type(self) -> str:
        return "application/x-pickle"

Attributes

type instance-attribute

type = pickle

content_type property

content_type: str

Functions

__init__

__init__() -> None
Source code in repo/hololinked/hololinked/serializers/pickle.py
def __init__(self) -> None:
    super().__init__()
    self.type = pickle

dumps

dumps(data: Any) -> bytes
Source code in repo/hololinked/hololinked/serializers/pickle.py
def dumps(self, data: Any) -> bytes:
    if global_config.ALLOW_PICKLE:
        return pickle.dumps(data)
        # SAST(id='hololinked.serializers.pickle.PickleSerializer.dumps', description='B301:blacklist', tool='bandit')
    raise RuntimeError("Pickle serialization is not allowed by the global configuration")

loads

loads(data: bytearray | memoryview | bytes) -> Any
Source code in repo/hololinked/hololinked/serializers/pickle.py
def loads(self, data: bytearray | memoryview | bytes) -> Any:
    if global_config.ALLOW_PICKLE:
        return pickle.loads(self.convert_to_bytes(data))
        # SAST(id='hololinked.serializers.pickle.PickleSerializer.loads', description='B301:blacklist', tool='bandit')
    raise RuntimeError("Pickle deserialization is not allowed by the global configuration")