Base class with serialization methods for user-defined Python objects
Classes which inherit from
Serializable are enabled with default implementations of
__reduce__ (for pickling), and other serialization
A derived class must either:
- have a member data matching the name of each argument to
- provide a user-defined
to_dict()method which returns a dictionary whose keys match the arguments to
If you change the keyword arguments to a class which derives from
Serializable but would like to be able to deserialize older JSON representations then you can define a class-level dictionary called
_KEYWORD_ALIASES which maps old keywords to new names (or
None if a keyword was removed).
Serializable objects must inherit from
Serializable, be tuples or namedtuples, be serializble primitive types such as dict, list, int, float, or str.
The serialized representation of objects relies on reserved keywords (such as
"__class__"), so dictionaries are expected to not contain any keys which begin with two underscores.