|
| 1 | +What's new in h5py 3.8 |
| 2 | +====================== |
| 3 | + |
| 4 | +New features |
| 5 | +------------ |
| 6 | + |
| 7 | +* h5py now has pre-built packages for Python 3.11. |
| 8 | +* h5py is compatible with HDF5 1.14 (:pr:`2187`). Pre-built packages on PyPI |
| 9 | + still include HDF5 1.12 for now. |
| 10 | +* :ref:`dataset_fancy` now accepts tuples, or any other sequence type, rather |
| 11 | + than only lists and NumPy arrays. This also includes ``range`` objects, |
| 12 | + but this will normally be less efficient than the equivalent slice. |
| 13 | +* New property :attr:`.Dataset.is_scale` for checking if the dataset is a |
| 14 | + dimension scale (:pr:`2168`). |
| 15 | +* :meth:`.Group.require_dataset` now validates ``maxshape`` for resizable |
| 16 | + datasets (:pr:`2116`). |
| 17 | +* :class:`.File` now has a ``meta_block_size`` argument and property. |
| 18 | + This influences how the space for metadata, including the initial header, is |
| 19 | + allocated. |
| 20 | +* Chunk cache can be configured per individual HDF5 dataset (:pr:`2127`). Use |
| 21 | + :meth:`.Group.create_dataset` for new datasets or :meth:`.Group.require_dataset` |
| 22 | + for already existing datasets. Any combination of the ``rdcc_nbytes``, |
| 23 | + ``rdcc_w0``, and ``rdcc_nslots`` arguments is allowed. The file defaults apply |
| 24 | + to those omitted. |
| 25 | +* HDF5 file names for ros3 driver can now also be ``s3://`` resource locations |
| 26 | + (:pr:`2140`). h5py will translate them into AWS path-style URLs for use by the |
| 27 | + driver. |
| 28 | +* When using the ros3 driver, AWS authentication will be activated only if all |
| 29 | + three driver arguments are provided. Previously AWS authentication was active |
| 30 | + if any one of the arguments was set causing an error from the HDF5 library. |
| 31 | +* :meth:`.Dataset.fields` now implements the ``__array__()`` method (:pr:`2151`). |
| 32 | + This speeds up accessing fields with functions that expect this, like |
| 33 | + ``np.asarray()``. |
| 34 | +* Low-level :meth:`h5py.h5d.DatasetID.chunk_iter` method that invokes a user-supplied |
| 35 | + callable object on every written chunk of one dataset (:pr:`2202`). It |
| 36 | + provides much better performance when iterating over a large number of chunks. |
| 37 | + |
| 38 | +Exposing HDF5 functions |
| 39 | +----------------------- |
| 40 | + |
| 41 | +* ``H5Dchunk_iter`` as :meth:`h5py.h5d.DatasetID.chunk_iter`. |
| 42 | +* `H5Pset_meta_block_size <https://portal.hdfgroup.org/display/HDF5/H5P_SET_META_BLOCK_SIZE>`_ |
| 43 | + and `H5Pget_meta_block_size <https://portal.hdfgroup.org/display/HDF5/H5P_GET_META_BLOCK_SIZE>`_ |
| 44 | + (:pr:`2106`). |
| 45 | + |
| 46 | +Bug fixes |
| 47 | +--------- |
| 48 | + |
| 49 | +* Fixed getting the default fill value (an empty string) for variable-length |
| 50 | + string data (:pr:`2132`). |
| 51 | +* Complex float16 data could cause a ``TypeError`` when trying to coerce to the |
| 52 | + currently unavailable numpy.dtype('c4'). Now a compound type is used instead |
| 53 | + (:pr:`2157`). |
| 54 | +* h5py 3.7 contained a performance regression when using a boolean mask array |
| 55 | + to index a 1D dataset, which is now fixed (:pr:`2193`). |
| 56 | + |
| 57 | +Building h5py |
| 58 | +------------- |
| 59 | + |
| 60 | +* Parallel HDF5 can be built with Microsoft MS-MPI (:pr:`2147`). See |
| 61 | + :ref:`build_mpi` for details. |
| 62 | +* Some 'incompatible function pointer type' compile time warnings were fixed |
| 63 | + (:pr:`2142`). |
| 64 | +* Fix for finding HDF5 DLL in mingw (:pr:`2105`). |
0 commit comments