Skip to content

Commit

Permalink
Merge pull request #2214 from takluyver/rever-3.8
Browse files Browse the repository at this point in the history
Prepare to release 3.8
  • Loading branch information
tacaswell authored Jan 20, 2023
2 parents ef1820a + 506c42d commit 7e769ee
Show file tree
Hide file tree
Showing 14 changed files with 68 additions and 279 deletions.
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
# built documents.
#
# The full version, including alpha/beta/rc tags.
release = '3.7.0'
release = '3.8.0'
# The short X.Y version.
version = '.'.join(release.split('.')[:2])

Expand Down
64 changes: 64 additions & 0 deletions docs/whatsnew/3.8.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
What's new in h5py 3.8
======================

New features
------------

* h5py now has pre-built packages for Python 3.11.
* h5py is compatible with HDF5 1.14 (:pr:`2187`). Pre-built packages on PyPI
still include HDF5 1.12 for now.
* :ref:`dataset_fancy` now accepts tuples, or any other sequence type, rather
than only lists and NumPy arrays. This also includes ``range`` objects,
but this will normally be less efficient than the equivalent slice.
* New property :attr:`.Dataset.is_scale` for checking if the dataset is a
dimension scale (:pr:`2168`).
* :meth:`.Group.require_dataset` now validates ``maxshape`` for resizable
datasets (:pr:`2116`).
* :class:`.File` now has a ``meta_block_size`` argument and property.
This influences how the space for metadata, including the initial header, is
allocated.
* Chunk cache can be configured per individual HDF5 dataset (:pr:`2127`). Use
:meth:`.Group.create_dataset` for new datasets or :meth:`.Group.require_dataset`
for already existing datasets. Any combination of the ``rdcc_nbytes``,
``rdcc_w0``, and ``rdcc_nslots`` arguments is allowed. The file defaults apply
to those omitted.
* HDF5 file names for ros3 driver can now also be ``s3://`` resource locations
(:pr:`2140`). h5py will translate them into AWS path-style URLs for use by the
driver.
* When using the ros3 driver, AWS authentication will be activated only if all
three driver arguments are provided. Previously AWS authentication was active
if any one of the arguments was set causing an error from the HDF5 library.
* :meth:`.Dataset.fields` now implements the ``__array__()`` method (:pr:`2151`).
This speeds up accessing fields with functions that expect this, like
``np.asarray()``.
* Low-level :meth:`h5py.h5d.DatasetID.chunk_iter` method that invokes a user-supplied
callable object on every written chunk of one dataset (:pr:`2202`). It
provides much better performance when iterating over a large number of chunks.

Exposing HDF5 functions
-----------------------

* ``H5Dchunk_iter`` as :meth:`h5py.h5d.DatasetID.chunk_iter`.
* `H5Pset_meta_block_size <https://portal.hdfgroup.org/display/HDF5/H5P_SET_META_BLOCK_SIZE>`_
and `H5Pget_meta_block_size <https://portal.hdfgroup.org/display/HDF5/H5P_GET_META_BLOCK_SIZE>`_
(:pr:`2106`).

Bug fixes
---------

* Fixed getting the default fill value (an empty string) for variable-length
string data (:pr:`2132`).
* Complex float16 data could cause a ``TypeError`` when trying to coerce to the
currently unavailable numpy.dtype('c4'). Now a compound type is used instead
(:pr:`2157`).
* h5py 3.7 contained a performance regression when using a boolean mask array
to index a 1D dataset, which is now fixed (:pr:`2193`).

Building h5py
-------------

* Parallel HDF5 can be built with Microsoft MS-MPI (:pr:`2147`). See
:ref:`build_mpi` for details.
* Some 'incompatible function pointer type' compile time warnings were fixed
(:pr:`2142`).
* Fix for finding HDF5 DLL in mingw (:pr:`2105`).
1 change: 1 addition & 0 deletions docs/whatsnew/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ These document the changes between minor (or major) versions of h5py.

.. toctree::

3.8
3.7
3.6
3.5
Expand Down
2 changes: 1 addition & 1 deletion h5py/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

hdf5_built_version_tuple = _h5.HDF5_VERSION_COMPILED_AGAINST

version_tuple = _H5PY_VERSION_CLS(3, 7, 0, None, None, None)
version_tuple = _H5PY_VERSION_CLS(3, 8, 0, None, None, None)

version = "{0.major:d}.{0.minor:d}.{0.bugfix:d}".format(version_tuple)
if version_tuple.pre is not None:
Expand Down
29 changes: 0 additions & 29 deletions news/add_fields_array.rst

This file was deleted.

31 changes: 0 additions & 31 deletions news/chunk_iter.rst

This file was deleted.

30 changes: 0 additions & 30 deletions news/complex32.rst

This file was deleted.

33 changes: 0 additions & 33 deletions news/dset-chunk-cache.rst

This file was deleted.

31 changes: 0 additions & 31 deletions news/fancy-index-seq.rst

This file was deleted.

30 changes: 0 additions & 30 deletions news/is-scale.rst

This file was deleted.

29 changes: 0 additions & 29 deletions news/pr2116_resizable_require.rst

This file was deleted.

30 changes: 0 additions & 30 deletions news/pr_2106_meta_block_size.rst

This file was deleted.

33 changes: 0 additions & 33 deletions news/ros3.rst

This file was deleted.

2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import setup_build, setup_configure


VERSION = '3.7.0'
VERSION = '3.8.0'


# these are required to use h5py
Expand Down

0 comments on commit 7e769ee

Please sign in to comment.