Module brevettiai.io.h5_metadata
Expand source code
import h5py
import json
def set_metadata(h5_path, metadata):
if not isinstance(metadata, str):
try:
metadata = metadata.json()
except AttributeError:
metadata = json.dumps(metadata)
with h5py.File(h5_path, mode='a') as f:
f.attrs['metadata'] = metadata
def extract_metadata(file_obj: h5py.File = None):
if "metadata" in file_obj.attrs:
return json.loads(file_obj.attrs['metadata'])
else:
return {}
def get_metadata(h5_path):
with h5py.File(h5_path, mode='r') as f:
return extract_metadata(f)
def save_model(path, model, metadata):
assert path.endswith(".h5")
retval = model.save(path)
set_metadata(path, metadata)
return retval
Functions
def extract_metadata(file_obj: h5py._hl.files.File = None)-
Expand source code
def extract_metadata(file_obj: h5py.File = None): if "metadata" in file_obj.attrs: return json.loads(file_obj.attrs['metadata']) else: return {} def get_metadata(h5_path)-
Expand source code
def get_metadata(h5_path): with h5py.File(h5_path, mode='r') as f: return extract_metadata(f) def save_model(path, model, metadata)-
Expand source code
def save_model(path, model, metadata): assert path.endswith(".h5") retval = model.save(path) set_metadata(path, metadata) return retval def set_metadata(h5_path, metadata)-
Expand source code
def set_metadata(h5_path, metadata): if not isinstance(metadata, str): try: metadata = metadata.json() except AttributeError: metadata = json.dumps(metadata) with h5py.File(h5_path, mode='a') as f: f.attrs['metadata'] = metadata