# Module H5A

Provides access to the low-level HDF5 “H5A” attribute interface.

## Functional API

h5py.h5a.create(ObjectID loc, STRING name, TypeID tid, SpaceID space, **kwds) → AttrID

  Create a new attribute, attached to an existing object.

  STRING obj_name (“.”)

    Attach attribute to this group member instead

  PropID lapl

    `Link access property list` for obj_name

h5py.h5a.open(ObjectID loc, STRING name=, INT index=, **kwds) → AttrID

  Open an attribute attached to an existing object. You must specify exactly one of either name or idx. Keywords are:

  STRING obj_name (“.”)

    Attribute is attached to this group member

  PropID lapl (None)

    `Link access property list` for obj_name

  INT index_type (`h5.INDEX_NAME`)

  INT order (`h5.ITER_INC`)

h5py.h5a.exists(ObjectID loc, STRING name, **kwds) → BOOL

  Determine if an attribute is attached to this object. Keywords:

  STRING obj_name (“.”)

    Look for attributes attached to this group member

  PropID lapl (None):

    `Link access property list` for obj_name

h5py.h5a.rename(ObjectID loc, STRING name, STRING new_name, **kwds)

  Rename an attribute. Keywords:

  STRING obj_name (“.”)

    Attribute is attached to this group member

  PropID lapl (None)

    `Link access property list` for obj_name

h5py.h5a.delete(ObjectID loc, STRING name=, INT index=, **kwds)

  Remove an attribute from an object. Specify exactly one of “name” or “index”. Keyword-only arguments:

  STRING obj_name (“.”)

    Attribute is attached to this group member

  PropID lapl (None)

    `Link access property list` for obj_name

  INT index_type (`h5.INDEX_NAME`)

  INT order (`h5.ITER_INC`)

h5py.h5a.get_num_attrs(ObjectID loc) → INT

  Determine the number of attributes attached to an HDF5 object.

h5py.h5a.get_info(ObjectID loc, STRING name=, INT index=, **kwds) → AttrInfo

  Get information about an attribute, in one of two ways:

  1. If you have the attribute identifier, just pass it in

  2. If you have the parent object, supply it and exactly one of either name or index.

  STRING obj_name (“.”)

    Use this group member instead

  PropID lapl (None)

    `Link access property list` for obj_name

  INT index_type (`h5.INDEX_NAME`)

    Which index to use

  INT order (`h5.ITER_INC`)

    What order the index is in

h5py.h5a.iterate(ObjectID loc, CALLABLE func, INT index=0, **kwds) → <Return value from func>

  Iterate a callable (function, method or callable object) over the attributes attached to this object. You callable should have the signature:

      func(STRING name) => Result

  or if the keyword argument “info” is True:

      func(STRING name, AttrInfo info) => Result

  Returning None continues iteration; returning anything else aborts iteration and returns that value. Keywords:

  BOOL info (False)

    Callback is func(STRING name, AttrInfo info), not func(STRING name)

  INT index_type (`h5.INDEX_NAME`)

    Which index to use

  INT order (`h5.ITER_INC`)

    Index order to use

## Info objects

class h5py.h5a.AttrInfo
  corder

    Creation order

  corder_valid

    Indicates if the creation order is valid

  cset

    Character set of attribute name (integer typecode from `h5t`)

  data_size

    Size of raw data

## Attribute objects

class h5py.h5a.AttrID

  Logical representation of an HDF5 attribute identifier.

  Objects of this class can be used in any HDF5 function call which expects an attribute identifier. Additionally, all `H5A*` functions which always take an attribute instance as the first argument are presented as methods of this class.

  - Hashable: No

  - Equality: Identifier comparison

  dtype

    A Numpy-stype dtype object representing the attribute’s datatype

  get_name() → STRING name

    Determine the name of this attribute.

  get_space() → SpaceID

    Create and return a copy of the attribute’s dataspace.

  get_storage_size() → INT

    Get the amount of storage required for this attribute.

  get_type() → TypeID

    Create and return a copy of the attribute’s datatype.

  name

    The attribute’s name

  read(NDARRAY arr, TypeID mtype=None)

    Read the attribute data into the given Numpy array. Note that the Numpy array must have the same shape as the HDF5 attribute, and a conversion-compatible datatype.

    The Numpy array must be writable and C-contiguous. If this is not the case, the read will fail with an exception.

    If provided, the HDF5 `TypeID` mtype will override the array’s dtype.

  shape

    A Numpy-style shape tuple representing the attribute’s dataspace

  write(NDARRAY arr)

    Write the contents of a Numpy array to the attribute. Note that the Numpy array must have the same shape as the HDF5 attribute, and a conversion-compatible datatype.

    The Numpy array must be C-contiguous. If this is not the case, the write will fail with an exception.