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