Changelog

Version 2.0.0

This is version 2.0.0 of h5, a high-level C++ interface to the hdf5 library.

We thank all contributors: Thomas Hahn, Henri Menke, Dylan Simon, Nils Wentzell, Alexander Hampel

Find below an itemized list of changes in this release.

General

  • Port h5 to c2py + clair and remove any cpp2py references

  • Add serialization.hpp to h5.hpp

  • Add additional group methods used to generate c2py/clair bindings

  • Add hdf5_format_impl specialization for char_buf

  • Use “Tuple” as a format string for std::pair and std::tuple

  • Generalize Storable concept

  • Remove support for numpy versions < 1.17

  • Remove unused pybind11 bindings

  • Add example codes to doc folder and make sure they compile

  • Use requires instead of H5_REQUIRES macro

  • Use h5::object instead of h5::group in format functions

  • Add overloads for write_hdf5_format and assert_hdf5_format without deducing storage type

  • Generalize std::map interface to allow for aribtrary comparison types

  • Bug fix in h5::array_interface::get_parent_shape_and_h5_strides

  • Read complex datasets written by Julia HDF5.jl and h5py that use the standard {r:double, i:double} HDF5 compound type (#13)

  • Breaking: rename array_view::is_complex to has_cplx_trailing_dim to reflect the trailing-2-dim buffer-layout convention

  • Support read/write of std::variant as an HDF5 attribute

  • List allowed alternatives in std::variant read error messages

doc

  • Update documentation of python layer

  • Add Python interface utilities to doxygen

  • Add FI support notice to README.md

fix

  • #28: make compile def H5_VER_GE_113 PUBLIC

  • Fix complex scalar attribute read: allow non-zero rank

cmake

  • Work around issue in FindHDF5 for cmake 3.25 or older

  • Add cmake workaround for hdf5 version detection when using hdf5 with subversion (#26)

  • Fix hdf5 linkeage in python layer

  • Directly use imported targets provided for hdf5

  • Guard c2py FetchContent against a duplicate target when built as a sub-project

  • Disable C++20 module scanning for clair-c2py compatibility

  • Suppress -Wc2y-extensions / c++26-extension warnings for Clang

  • Fix target_link_directories to use the directory where the project library is compiled

Version 1.3.0

This is version 1.3.0 of h5, a high-level C++ interface to the hdf5 library.

We thank all contributors: Thomas Hahn, Alexander Hampel, Henri Menke, Olivier Parcollet, Nils Wentzell

Find below an itemized list of changes in this release.

General

  • Clean up detail namespace to consistently contain implementation details

  • Improve test coverage and clean up tests

  • Bug fix in h5::array_interface

  • Allow arbitrary block sizes in h5::array_interface

  • Clean up in h5::array_interface

  • Bug fix in h5::file ctor

  • Split object.hpp into multiple header files

  • Remove default copy constructor in group

  • Allow additional arguments in generic h5::read and h5::write functions

  • Allow reading of all integer types into Python long without warning

  • Correct installation of _h5py.wrap.hxx

  • Add hxx clair include

  • Add missing include in h5/macros.hpp

  • Add missing cstdint include in h5/object.hpp, see issue #915

doc

  • Add documentation to the C++ source code files

  • Remove any sphinx related files and switch to doxygen to generate documentation

  • Build and deploy documentation with GitHub Actions

cmake

  • Use GNUInstallDirs in install commands

  • Set policy CMP0144 to new

  • Use CPP2PY_PYTHON_xxx variables instead of PYTHON_xxx

Version 1.2.0

This is version 1.2.0 of h5, a high-level C++ interface to the hdf5 library.

We thank all contributors: Thomas Hahn, Alexander Hampel, Olivier Parcollet, Dylan Simon, Nils Wentzell

Find below an itemized list of changes in this release.

General

  • Remove redundant std_addons/complex.hpp header

  • Rename h5::h5_try_read -> h5::try_read

  • Add concept h5::Storable

  • Fix issue in previous commit: Use H5_ASSERT over ASSERT macro

  • Add function write_slice to enable updating part of an existing dataset

  • Allow to set hyperslab for filespace in h5_read

  • Extend vector test to cover complex numbers

  • Use warnings module to issue python warnings

  • clang-format all source files

  • Remove warnings

  • General cleanup

cmake

  • Add compiler warnings for IntelLLVM

  • Update Findsanitizer.cmake to include TSAN and MSAN

  • Do not build documentation as subproject

  • Fix FindHDF5 logic for cmake versions >=3.23

  • Fix h5::hdf5 interface target for cmake versions 3.20+

jenkins

  • Update packaging Dockerfiles

fixes

  • Fix hsize_t for hdf5 versions >=1.13

  • Loosen type-check of hsize_t to restore hdf5 1.13 compatibility. Fix #11

  • Fix #10: Do not exceed maximum chunk size in h5::array_interface::write

  • Fix signature of generic h5::read_attribute and h5::write_attribute

  • Allow reading vector when stored as subgroup with numbered keys

  • np.int / np.float / np.complex removed

Version 1.1.0

This is version 1.1.0 of h5, a high-level C++ interface to the hdf5 library.

We thank all contributors: Daniel Bauernfeind, Alexander Hampel, Henri Menke, Dylan Simon, Nils Wentzell

Find below an itemized list of changes in this release.

General

  • Allow creation of softlinks

  • Fix logic error in test/python/archive.py

  • Make test on byte buffer less stringent, compare only archive contents for memory files

  • Minor correction in error msg when constructing HDFArchiveGroup as a new memory file

  • Add function as_bytes to HDFArchive class and extend the wrapped File class as necessary

  • Allow creation HDFArchive as a memory-file only

  • Consistently use std::byte instead of char for memory files

  • Merge memory file into file class, expose byte constructor to Python + tests

  • Allow type conversions in h5_read, but issue warning FIX #7

  • Allowed custom key class in reading/writing of a map. (#5)

  • Cleanup unnecessary hdf5.h include in h5_complex test

  • Minor correction in h5_read doc for array and vector

  • Consistently use header guards over pragma once

doc

  • Add link to reference doc to README.md

  • Minor doc cleanups for doxygen generation, add Doxyfile and update .gitignore

cmake

  • Bump Version number to 1.1.0

  • Set CXX standard using target_compile_features

  • Bump version requirement to 3.13.5

  • Provide a namespaced alias for the python modules

Version 1.0.0

h5 is a high-level C++ interface to the hdf5 library, which

  • Provides write and read functions for various STL container types

  • Provides a generic array_interface to store and load multi-dimensional arrays

  • Takes an RAII approach to manage the reference counting.

  • Comes with Python bindings.

This is the initial release for this project.