simpleml.persistables.serializing module

Module to define the classes that support serialization for all JSON columns

A lot of persistable subclasses try to persist objects that cannot be natively serialized in a database. This attempts to define a custom pattern to serialize them and subsequently deserialize on load

class simpleml.persistables.serializing.JSONSerializer(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

Bases: json.encoder.JSONEncoder

default(obj)[source]

Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

For example, to support arbitrary iterators, you could implement default like this:

def default(self, o):
    try:
        iterable = iter(o)
    except TypeError:
        pass
    else:
        return list(iterable)
    # Let the base class default method raise the TypeError
    return JSONEncoder.default(self, o)
simpleml.persistables.serializing.custom_dumps(data)[source]
simpleml.persistables.serializing.custom_loads(data)[source]
simpleml.persistables.serializing.object_hook(data, ignore_dicts=False)[source]