Skip to main content
`Ctrl`+`K`

. currentmodule:: silx.io

# `commonh5`: Helpers for writing h5py-like API

This module contains generic objects, emulating h5py groups, datasets and files. They are used in `spech5` and `fabioh5`.

## Classes

class Node(name, parent=None, attrs=None)

  This is the base class for all `spech5` and `fabioh5` classes. It represents a tree node, and knows its parent node (`parent`). The API mimics a h5py node, with following attributes: `file`, `attrs`, `name`, and `basename`.

  property h5_class

    Returns the HDF5 class which is mimicked by this class.

    Return type:

      H5Type

  property h5py_class

    Returns the h5py classes which is mimicked by this class. It can be one of h5py.File, h5py.Group or h5py.Dataset

    This should not be used anymore. Prefer using h5_class

    Return type:

      Class

  property parent

    Returns the parent of the node.

    Return type:

      Node

  property file

    Returns the file node of this node.

    Return type:

      Node

  property attrs

    Returns HDF5 attributes of this node.

    Return type:

      dict

  property name

    Returns the HDF5 name of this node.

  property basename

    Returns the HDF5 basename of this node.

class File(name=None, mode=None, attrs=None)

  Bases: `Group`

  This class is the special `Group` that is the root node of the tree structure. It mimics h5py.File.

  property h5_class

    Returns the `h5py.File` class

  close()

    Close the object, and free up associated resources.

class Group(name, parent=None, attrs=None)

  Bases: `Node`

  This class mimics a h5py.Group.

  get(name, default=None, getclass=False, getlink=False)

    Retrieve an item or other information.

    If getlink only is true, the returned value is always h5py.HardLink, because this implementation do not use links. Like the original implementation.

    Parameters:

      - name (str) – name of the item

      - default (object) – default value returned if the name is not found

      - getclass (bool) – if true, the returned object is the class of the object found

      - getlink (bool) – if true, links object are returned instead of the target

    Returns:

      An object, else None

    Return type:

      object

  __getitem__(name)

    Return a child from his name.

    Parameters:

      name (str) – name of a member or a path throug members using ‘/’ separator. A ‘/’ as a prefix access to the root item of the tree.

    Return type:

      Node

  __contains__(name)

    Returns true if name is an existing child of this group.

    Return type:

      bool

  __len__()

    Returns the number of children contained in this group.

    Return type:

      int

  __iter__()

    Iterate over member names

  keys()

    Returns an iterator over the children’s names in a group.

  values()

    Returns an iterator over the children nodes (groups and datasets) in a group.

    Added in version 0.6.

  items()

    Returns items iterator containing name-node mapping.

    Return type:

      iterator

  visit(func, visit_links=False)

    Recursively visit all names in this group and subgroups. See the documentation for h5py.Group.visit for more help.

    Parameters:

      func (callable) – Callable (function, method or callable object)

  visititems(func, visit_links=False)

    Recursively visit names and objects in this group. See the documentation for h5py.Group.visititems for more help.

    Parameters:

      - func (callable) – Callable (function, method or callable object)

      - visit_links (bool) – If False, ignore links. If True, call func(name) for links and recurse into target groups.

  property attrs

    Returns HDF5 attributes of this node.

    Return type:

      dict

  property basename

    Returns the HDF5 basename of this node.

  property file

    Returns the file node of this node.

    Return type:

      Node

  property h5py_class

    Returns the h5py classes which is mimicked by this class. It can be one of h5py.File, h5py.Group or h5py.Dataset

    This should not be used anymore. Prefer using h5_class

    Return type:

      Class

  property name

    Returns the HDF5 name of this node.

  property parent

    Returns the parent of the node.

    Return type:

      Node

class Dataset(name, data, parent=None, attrs=None)

  Bases: `Node`

  This class handles a numpy data object, as a mimicry of a h5py.Dataset.

  property h5_class

    Returns the HDF5 class which is mimicked by this class.

    Return type:

      H5Type

  property dtype

    Returns the numpy datatype exposed by this dataset.

    Return type:

      numpy.dtype

  property shape

    Returns the shape of the data exposed by this dataset.

    Return type:

      tuple

  property size

    Returns the size of the data exposed by this dataset.

    Return type:

      int

  property value

    Returns the data exposed by this dataset.

    Deprecated by h5py. It is prefered to use indexing [()].

    Return type:

      numpy.ndarray

  property compression

    Returns compression as provided by h5py.Dataset.

    There is no compression.

  property compression_opts

    Returns compression options as provided by h5py.Dataset.

    There is no compression.

  property chunks

    Returns chunks as provided by h5py.Dataset.

    There is no chunks.

  property is_virtual

    Checks virtual data as provided by h5py.Dataset

  virtual_sources()

    Returns virtual dataset sources as provided by h5py.Dataset.

    Return type:

      list

  property external

    Returns external sources as provided by h5py.Dataset.

    Return type:

      list or None