1What's new in h5py 2.7 2====================== 3 4Python 3.2 is no longer supported 5--------------------------------- 6``h5py`` 2.7 drops Python 3.2 support, and testing is not longer performed on Python 3.2. The latest versions of ``pip``, ``virtualenv``, ``setuptools`` and ``numpy`` do not support Python 3.2, and dropping 3.2 allows both ``u`` and ``b`` prefixes to be used for strings. A clean up of some of the legacy code was done in `#675`_ by Andrew Collette. 7 8Additionally, support for Python 2.6 is soon to be dropped for ``pip`` (See https://github.com/pypa/pip/issues/3955) and ``setuptools`` (See https://github.com/pypa/setuptools/issues/878), and ``numpy`` has dropped Python 2.6 also in the latest release. While ``h5py`` has not dropped Python 2.6 this release, users are strongly encouraged to move to Python 2.7 where possible. 9 10Improved testing support 11------------------------ 12There has been a major increase in the number of configurations ``h5py`` is automatically tested in, with Windows CI support added via Appveyor (`#795`_, `#798`_, `#799`_ and `#801`_ by James Tocknell) and testing of minimum requirements to ensure we still satisfy them (`#703`_ by James Tocknell). Additionally, ``tox`` was used to ensure that we don't run tests on Python versions which our dependencies have dropped or do not support (`#662`_, `#700`_ and `#733`_). Thanks to to the Appveyor support, unicode tests were made more robust (`#788`_, `#800`_ and `#804`_ by James Tocknell). Finally, other tests were improved or added where needed (`#724`_ by Matthew Brett, `#789`_, `#794`_ and `#802`_ by James Tocknell). 13 14Improved python compatibility 15----------------------------- 16The ``ipython``/``jupyter`` completion support now has Python 3 support (`#715`_ by Joseph Kleinhenz). ``h5py`` now supports ``pathlib`` filenames (`#716`_ by James Tocknell). 17 18Documentation improvements 19-------------------------- 20An update to the installation instructions and some whitespace cleanup was done in `#808`_ by Thomas A Caswell, and mistake in the quickstart was fixed by Joydeep Bhattacharjee in `#708`_. 21 22setup.py improvements 23--------------------- 24Support for detecting the version of HDF5 via ``pkgconfig`` was added by Axel Huebl in `#734`_, and support for specifying the path to MPI-supported HDF5 was added by Axel Huebl in `#721`_. ``h5py's`` classifiers were updated to include supported python version and interpreters in `#811`_ by James Tocknell. 25 26Support for additional HDF5 features added 27------------------------------------------ 28Low-level support for `HDF5 Direct Chunk Write`_ was added in `#691`_ by Simon Gregor Ebner. Minimal support for `HDF5 File Image Operations`_ was added by Andrea Bedini in `#680`_. Ideas and opinions for further support for both `HDF5 Direct Chunk Write`_ and `HDF5 File Image Operations`_ are welcome. High-level support for reading and writing null dataspaces was added in `#664`_ by James Tocknell. 29 30Improvements to type system 31--------------------------- 32Reading and writing of compound datatypes has improved, with support for different orderings and alignments (`#701`_ by Jonah Bernhard, `#702`_ by Caleb Morse `#738`_ by @smutch, `#765`_ by Nathan Goldbaum and `#793`_ by James Tocknell). Support for reading extended precision and non-standard floating point numbers has also been added (`#749`_, `#812`_ by Thomas A Caswell, `#787`_ by James Tocknell and `#781`_ by Martin Raspaud). Finally, compatibility improvements to ``Cython`` annotations of HDF5 types were added in `#692`_ and `#693`_ by Aleksandar Jelenak. 33 34Other changes 35------------- 36* Fix deprecation of ``-`` for ``numpy`` boolean arrays (`#683`_ by James Tocknell) 37* Check for duplicates in fancy index validation (`#739`_ by Sam Toyer) 38* Avoid potential race condition (`#754`_ by James Tocknell) 39* Fix inconsistency when slicing with ``numpy.array`` of shape ``(1,)`` (`#772`_ by Artsiom) 40* Use ``size_t`` to store Python object id (`#773`_ by Christoph Gohlke) 41* Avoid errors when the Python GC runs during ``nonlocal_close()`` (`#776`_ by Antoine Pitrou) 42* Move from ``six.PY3`` to ``six.PY2`` (`#686`_ by James Tocknell) 43 44 45.. _`#662` : https://github.com/h5py/h5py/pull/662 46.. _`#664` : https://github.com/h5py/h5py/pull/664 47.. _`#675` : https://github.com/h5py/h5py/pull/675 48.. _`#680` : https://github.com/h5py/h5py/pull/680 49.. _`#683` : https://github.com/h5py/h5py/pull/683 50.. _`#686` : https://github.com/h5py/h5py/pull/686 51.. _`#691` : https://github.com/h5py/h5py/pull/691 52.. _`#692` : https://github.com/h5py/h5py/pull/692 53.. _`#693` : https://github.com/h5py/h5py/pull/693 54.. _`#700` : https://github.com/h5py/h5py/pull/700 55.. _`#701` : https://github.com/h5py/h5py/pull/701 56.. _`#702` : https://github.com/h5py/h5py/pull/702 57.. _`#703` : https://github.com/h5py/h5py/pull/703 58.. _`#708` : https://github.com/h5py/h5py/pull/708 59.. _`#715` : https://github.com/h5py/h5py/pull/715 60.. _`#716` : https://github.com/h5py/h5py/pull/716 61.. _`#721` : https://github.com/h5py/h5py/pull/721 62.. _`#724` : https://github.com/h5py/h5py/pull/724 63.. _`#733` : https://github.com/h5py/h5py/pull/733 64.. _`#734` : https://github.com/h5py/h5py/pull/734 65.. _`#738` : https://github.com/h5py/h5py/pull/738 66.. _`#739` : https://github.com/h5py/h5py/pull/739 67.. _`#749` : https://github.com/h5py/h5py/pull/749 68.. _`#754` : https://github.com/h5py/h5py/pull/754 69.. _`#765` : https://github.com/h5py/h5py/pull/765 70.. _`#772` : https://github.com/h5py/h5py/pull/772 71.. _`#773` : https://github.com/h5py/h5py/pull/773 72.. _`#776` : https://github.com/h5py/h5py/pull/776 73.. _`#781` : https://github.com/h5py/h5py/pull/781 74.. _`#787` : https://github.com/h5py/h5py/pull/787 75.. _`#788` : https://github.com/h5py/h5py/pull/788 76.. _`#789` : https://github.com/h5py/h5py/pull/789 77.. _`#793` : https://github.com/h5py/h5py/pull/793 78.. _`#794` : https://github.com/h5py/h5py/pull/794 79.. _`#795` : https://github.com/h5py/h5py/pull/795 80.. _`#798` : https://github.com/h5py/h5py/pull/798 81.. _`#799` : https://github.com/h5py/h5py/pull/799 82.. _`#800` : https://github.com/h5py/h5py/pull/800 83.. _`#801` : https://github.com/h5py/h5py/pull/801 84.. _`#802` : https://github.com/h5py/h5py/pull/802 85.. _`#804` : https://github.com/h5py/h5py/pull/804 86.. _`#807` : https://github.com/h5py/h5py/pull/807 87.. _`#808` : https://github.com/h5py/h5py/pull/808 88.. _`#811` : https://github.com/h5py/h5py/pull/811 89.. _`#812` : https://github.com/h5py/h5py/pull/812 90.. _`HDF5 Direct Chunk Write` : https://support.hdfgroup.org/HDF5/doc/Advanced/DirectChunkWrite/ 91.. _`HDF5 File Image Operations` : https://support.hdfgroup.org/HDF5/doc/Advanced/FileImageOperations/HDF5FileImageOperations.pdf 92 93Acknowledgements 94---------------- 95