def initialize(self, cols, metadata=None): """ """ if metadata is None: metadata = {} if self.__initialized: raise omero.ValidationException(None, None, "Already initialized.") if not cols: raise omero.ApiUsageException(None, None, "No columns provided") for c in cols: if not c.name: raise omero.ApiUsageException( None, None, "Column unnamed: %s" % c) if internal_attr(c.name): raise omero.ApiUsageException( None, None, "Reserved column name: %s" % c.name) self.__definition = columns2definition(cols) self.__ome = self.__hdf_file.createGroup("/", "OME") self.__mea = self.__hdf_file.createTable( self.__ome, "Measurements", self.__definition) self.__types = [x.ice_staticId() for x in cols] self.__descriptions = [ (x.description is not None) and x.description or "" for x in cols] self.__hdf_file.createArray(self.__ome, "ColumnTypes", self.__types) self.__hdf_file.createArray( self.__ome, "ColumnDescriptions", self.__descriptions) md = {} if metadata: md = metadata.copy() md['__version'] = VERSION md['__initialized'] = time.time() self.add_meta_map(md, replace=True, init=True) self.__hdf_file.flush() self.__initialized = True