def write_meta(self):
with h5py.File(self.filename, "<STR_LIT>") as h5file_output:<EOL><INDENT>h5table_root = h5file_output[self.h5table_root_name]<EOL>if self.description is not None:<EOL><INDENT>h5table_root.attrs["<STR_LIT:description>"] = self.description<EOL><DEDENT>h5columns = h5table_root if self._version == <NUM_LIT:1> else h5table_root['<STR_LIT>']<EOL>for column_name in self.columns.keys():<EOL><INDENT>h5dataset = None<EOL>if column_name in h5columns:<EOL><INDENT>h5dataset = h5columns[column_name]<EOL><DEDENT>else:<EOL><INDENT>for group in h5columns.values():<EOL><INDENT>if '<STR_LIT:type>' in group.attrs:<EOL><INDENT>if group.attrs['<STR_LIT:type>'] in ['<STR_LIT>']: <EOL><INDENT>for name, column in group.items():<EOL><INDENT>if name == column_name:<EOL><INDENT>h5dataset = column<EOL><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT>if h5dataset is None:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(column_name))<EOL><DEDENT>for name, values in [("<STR_LIT>", self.ucds), ("<STR_LIT>", self.units), ("<STR_LIT:description>", self.descriptions)]:<EOL><INDENT>if column_name in values:<EOL><INDENT>value = ensure_string(values[column_name], cast=True)<EOL>h5dataset.attrs[name] = value<EOL><DEDENT>else:<EOL><INDENT>if name in h5columns.attrs:<EOL><INDENT>del h5dataset.attrs[name]<EOL><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT>
ucds, descriptions and units are written as attributes in the hdf5 file, instead of a seperate file as
         the default :func:`Dataset.write_meta`.