Source code for s3pathlib.core.serde

# -*- coding: utf-8 -*-

"""
serialization and deserialization.
"""

import typing as T

if T.TYPE_CHECKING:  # pragma: no cover
    from .s3path import S3Path


[docs] class SerdeAPIMixin: """ A mixin class that implements the serialization and deserialization. """
[docs] def to_dict(self: "S3Path") -> dict: """ Serialize to Python dict .. versionadded:: 1.0.1 """ return { "bucket": self._bucket, "parts": self._parts, "is_dir": self._is_dir, }
[docs] @classmethod def from_dict(cls: "S3Path", dct: dict) -> "S3Path": """ Deserialize from Python dict .. versionadded:: 1.0.2 """ return cls._from_parsed_parts( bucket=dct["bucket"], parts=dct["parts"], is_dir=dct["is_dir"], )