def METHOD_NAME(self, struct_name):
    """Read octave equivalent structures in hdf5 file
    :param struct_name: the identification of the top level identity we want to get from an hdf5 structure
    :return: the dictionnary of the requested struct. None if can t find it
    """
    if self.file is None:
        info = "No file currently open"
        logger.info(info)
        return None
    data_dict = {}
    grr = (list(self.file[struct_name].items())[1])[1]
    try:
        gr_level2 = grr.items()
    except AttributeError:
        reason = "no gr_level2"
        logger.info(reason)
        return None
    for key, val in iter(dict(gr_level2).items()):
        data_dict[str(key)] = list(val.items())[1][1][()]
        if list(val.items())[0][1][()] != np.string_('sq_string'):
            data_dict[str(key)] = float(data_dict[str(key)])
        else:
            if list(val.items())[0][1][()] == np.string_('sq_string'):
                # in the case the string has been stored as an nd-array of char
                if type(data_dict[str(key)]) is np.ndarray:
                    data_dict[str(key)] = "".join(chr(item) for item in data_dict[str(key)])
                else:
                    data_dict[str(key)] = data_dict[str(key)].decode('UTF-8')
            # In the case Octave have added an extra character at the end
            if self.octave_targetted_version < 3.8:
                data_dict[str(key)] = data_dict[str(key)][:-1]
    return data_dict