What’s new in h5py 3.12
New features
h5py now has pre-built packages for Python 3.13.
However, h5py is not yet compatible with the new free-threading mode; we’re tracking work on that in issue GH2475.
Breaking changes
Support for Python 3.8 was dropped (PR 2471). Python 3.9 or newer is required to build or install h5py 3.12.
The minimum supported version of HDF5 was increased to 1.10.6 (PR 2486). If you need h5py on HDF5 1.10.4 or .5, please use h5py 3.11.
The fill time for chunked storage was previously set to
h5d.FILL_TIME_ALLOC
. Now this the default comes from HDF5, which usesh5d.FILL_TIME_IFSET
(equivalent tofill_time='ifset'
) (PR 2463). Please usefill_time='alloc'
if the change is a problem for you.
Exposing HDF5 functions
Expose fill time option in dataset creation property list via the
fill_time
parameter increate_dataset()
(PR 2463).
Bug fixes
Fix an error where native float16 support is not available (PR 2422).
Fixed values of
H5F_close_degree_t
enum (PR 2433).External links are now accessed with libhdf5’s default access properties (PR 2433).
Fix the iteration order for the root group in a file with creation order tracked (PR 2410).
Fixed some deprecation warnings from NumPy (PR 2416).
Building h5py
Require a newer version of mpi4py for Python 3.12 (PR 2418).
The test suite is now configured to fail on unexpected warnings (PR 2428).
The generated Cython wrapper code (
defs.*
&_hdf5.pxd
) is now specific to the version of HDF5 it’s building for. If the version of HDF5 has changed,api_gen.py
should be run automatically to recreate this (PR 2479, PR 2480).Various PRs modernising & cleaning up old Cython code, see the 3.12 milestone on Github for details.
3.12.1 bug fix release
Fix bundling HDF5 DLLs in pre-built packages for Windows (PR 2507).