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 get_metadata(h5_path):
    with h5py.File(h5_path, mode='r') as f:
        if "metadata" in f.attrs:
            return json.loads(f.attrs['metadata'])
        else:
            return {}


def save_model(path, model, metadata):
    assert path.endswith(".h5")
    retval = model.save(path)
    set_metadata(path, metadata)
    return retval

Functions

def get_metadata(h5_path)
Expand source code
def get_metadata(h5_path):
    with h5py.File(h5_path, mode='r') as f:
        if "metadata" in f.attrs:
            return json.loads(f.attrs['metadata'])
        else:
            return {}
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