The PNI Python package provides bindings to the PNI C++ libraries
The term binding might not be entirely correct as the PNI libraries are mainly C++ templates. One can consider this package as an implementation providing the functionality of the templates. In particular not all the features exposed by the C++ libraries are imported into Python as equivalent native Python solutions exist. For instance libpnicore provides templates for multidimensional arrays which are not required in Python as we have numpy arrays.
From libpnicore only the exceptions are imported as they are used by libpniio. Most of the code accessed by this Python packages comes from libpniio and addresses the following problems
At the current status (version 1.0.0) the libpniio does only support Nexus using the HDF5 storage backend. In order to use the provided Nexus functionality import the package with something like this
import pni.io.nx.h5 as nexus