Source code for caspia.meadow.serialization

from caspia.meadow.utils import all_subclasses


[docs]class Serializable:
[docs] def serialize(self): """Return serialized version (most likely dict) if possible or None."""
[docs]class Deserializable: serialized_type = None
[docs] @classmethod def deserialize(cls, data, context): subclasses = all_subclasses(cls) for subclass in subclasses: if subclass.serialized_type == data['type']: return subclass.deserialize(data, context) return None