Source code for astrophot.utils.conversions.dict_to_hdf5

from typing import Iterable


[docs] def to_hdf5_has_None(l): for i in range(len(l)): if hasattr(l[i], "__iter__") and not isinstance(l[i], str): l[i] = to_hdf5_has_None(l[i]) elif l[i] is None: return True return False
[docs] def dict_to_hdf5(h, D): for key in D: if isinstance(D[key], dict): n = h.create_group(key) dict_to_hdf5(n, D[key]) else: if hasattr(D[key], "__iter__") and not isinstance(D[key], str): if to_hdf5_has_None(D[key]): h[key] = str(D[key]) else: h.create_dataset(key, data=D[key]) elif D[key] is not None: h[key] = D[key] else: h[key] = "None"
[docs] def hdf5_to_dict(h): import h5py D = {} for key in h.keys(): if isinstance(h[key], h5py.Group): D[key] = hdf5_to_dict(h[key]) elif isinstance(h[key], str) and "None" in h[key]: D[key] = eval(h[key]) else: D[key] = h[key] return D