zea.data.utils

Utility functions for zea datasets.

Functions

decode_file_info(file_info)

Decode file info from a json string.

json_dumps(obj)

Used to serialize objects that contain range and slice objects.

json_loads(obj)

Used to deserialize objects that contain range and slice objects.

Classes

ZeaJSONEncoder(*[, skipkeys, ensure_ascii, ...])

Wrapper for json.dumps to encode range and slice objects.

class zea.data.utils.ZeaJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

Bases: JSONEncoder

Wrapper for json.dumps to encode range and slice objects.

Example

>>> import json
>>> from zea.data.utils import ZeaJSONEncoder
>>> json.dumps(range(10), cls=ZeaJSONEncoder)
'{"__type__": "range", "start": 0, "stop": 10, "step": 1}'

Note

Probably you would use the zea.data.dataloader.json_dumps() function instead of using this class directly.

default(o)[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 super().default(o)
zea.data.utils.decode_file_info(file_info)[source]

Decode file info from a json string. A batch of H5Generator can return a list of file_info that are json strings. This function decodes the json strings and returns a list of dictionaries with the information, namely: - full_path: full path to the file - file_name: file name - indices: indices used to extract the image from the file

zea.data.utils.json_dumps(obj)[source]

Used to serialize objects that contain range and slice objects. :type obj: :param obj: object to serialize (most likely a dictionary).

Returns:

serialized object (json string).

Return type:

str

zea.data.utils.json_loads(obj)[source]

Used to deserialize objects that contain range and slice objects. :type obj: :param obj: object to deserialize (most likely a json string).

Returns:

deserialized object (dictionary).

Return type:

object