What's new in h5py 3.14 ======================= New features ------------ * On NumPy 2.x, it is now possible to read and write native `NumPy variable-width strings `_, a.k.a. ``StringDType()`` or ``dtype='T'``, which are more efficient than arrays of Python string objects (:pr:`2557`). Variable length string data is still read as string objects by default, for consistency with previous versions of h5py and to work with NumPy 1.x; use ``dset.astype('T')`` to read in the new format. See :ref:`npystrings`. Exposing HDF5 functions ----------------------- * :meth:`h5py.h5d.DatasetID.write_direct_chunk` now wraps ``H5Dwrite_chunk`` instead of ``H5DOwrite_chunk``. This should not change its behaviour (:pr:`2586`). Bug fixes --------- * Fixed a problem with `phil` Lock handling in forked processes when h5py is also used from other threads (:pr:`2585`). * Fixed an error using :meth:`.Dataset.read_direct` with a zero-size selection (:pr:`2577`). * Creating a virtual dataset containing 0 mappings from the high-level API now works, making a dataset with virtual layout (:pr:`2562`). Building h5py ------------- * setuptools 77 or above is now required, due to changes in the license metadata in ``pyproject.toml`` (:pr:`2580`). * Numpy variable-width string support does not alter the build process: you need NumPy 2.x to build (as before), but the built packages remain backwards compatible with NumPy 1.x.