opengate.serialization ====================== .. py:module:: opengate.serialization Classes ------- .. autoapisummary:: opengate.serialization.GateJSONEncoder Functions --------- .. autoapisummary:: opengate.serialization.json_obj_hook opengate.serialization.dumps_json opengate.serialization.loads_json opengate.serialization.dump_json opengate.serialization.load_json Module Contents --------------- .. py:class:: GateJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None) Bases: :py:obj:`json.JSONEncoder` Extensible JSON encoder for Python data structures. Supports the following objects and types by default: +-------------------+---------------+ | Python | JSON | +===================+===============+ | dict | object | +-------------------+---------------+ | list, tuple | array | +-------------------+---------------+ | str | string | +-------------------+---------------+ | int, float | number | +-------------------+---------------+ | True | true | +-------------------+---------------+ | False | false | +-------------------+---------------+ | None | null | +-------------------+---------------+ To extend this to recognize other objects, subclass and implement a ``.default()`` method with another method that returns a serializable object for ``o`` if possible, otherwise it should call the superclass implementation (to raise ``TypeError``). .. py:method:: default(obj) 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) .. py:function:: json_obj_hook(input) Decodes a previously encoded numpy ndarray with proper shape and dtype :param input: (dict) json encoded ndarray :return: (ndarray) if input was an encoded ndarray .. py:function:: dumps_json(*args, **kwargs) .. py:function:: loads_json(*args, **kwargs) .. py:function:: dump_json(*args, **kwargs) .. py:function:: load_json(*args, **kwargs)