Low-Level API
=============
This documentation mostly describes the h5py high-level API, which offers the
main features of HDF5 in an interface modelled on dictionaries and NumPy arrays.
h5py also provides a low-level API, which more closely follows the HDF5 C API.
.. seealso::
- `h5py Low-Level API Reference `_
- `HDF5 C/Fortran Reference Manual `_
You can easily switch between the two levels in your code:
- **To the low-level**: High-level :class:`.File`, :class:`.Group` and
:class:`.Dataset` objects all have a ``.id`` attribute exposing the
corresponding low-level objects—:class:`~low:h5py.h5f.FileID`,
:class:`~low:h5py.h5g.GroupID` and :class:`~low:h5py.h5d.DatasetID`::
dsid = dset.id
dsid.get_offset() # Low-level method
Although there is no high-level object for a single attribute,
:meth:`.AttributeManager.get_id` will get the low-level
:class:`~low:h5py.h5a.AttrID` object::
aid = dset.attrs.get_id('timestamp')
aid.get_storage_size() # Low-level method
- **To the high-level**: Low-level :class:`~low:h5py.h5f.FileID`,
:class:`~low:h5py.h5g.GroupID` and :class:`~low:h5py.h5d.DatasetID` objects
can be passed to the constructors of :class:`.File`, :class:`.Group` and
:class:`.Dataset`, respectively.