Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/api/serializers.py
Show All 27 Lines | def _encode_enum(obj: Enum) -> Dict[str, Any]: | ||||
} | } | ||||
def _decode_enum(d: Dict[str, Any]) -> Enum: | def _decode_enum(d: Dict[str, Any]) -> Enum: | ||||
return getattr(interface, d.pop("__type__"))(d["value"]) | return getattr(interface, d.pop("__type__"))(d["value"]) | ||||
ENCODERS: List[Tuple[type, str, Callable]] = [ | ENCODERS: List[Tuple[type, str, Callable]] = [ | ||||
(interface.DirectoryData, "dataclass", _encode_dataclass), | |||||
(interface.EntityType, "enum", _encode_enum), | |||||
(interface.ProvenanceResult, "dataclass", _encode_dataclass), | (interface.ProvenanceResult, "dataclass", _encode_dataclass), | ||||
(interface.RelationData, "dataclass", _encode_dataclass), | (interface.RelationData, "dataclass", _encode_dataclass), | ||||
(interface.RevisionData, "dataclass", _encode_dataclass), | |||||
(interface.EntityType, "enum", _encode_enum), | |||||
(interface.RelationType, "enum", _encode_enum), | (interface.RelationType, "enum", _encode_enum), | ||||
(interface.RevisionData, "dataclass", _encode_dataclass), | |||||
(set, "set", list), | (set, "set", list), | ||||
] | ] | ||||
DECODERS: Dict[str, Callable] = { | DECODERS: Dict[str, Callable] = { | ||||
"dataclass": _decode_dataclass, | "dataclass": _decode_dataclass, | ||||
"enum": _decode_enum, | "enum": _decode_enum, | ||||
"set": set, | "set": set, | ||||
} | } |