What’s new in h5py 3.5

New features

  • Datasets are now created without timestamps by default, making it easier to create more consistent files. Pass track_times=True to Group.create_dataset() to add timestamps again.
  • Added locking File argument to select HDF5 file locking behavior.
  • Enable setting file space page size when creating new HDF5 files. A new named argument fs_page_size is added to the File class.
  • Enable HDF5 page buffering, a low-level caching feature that may improve overall I/O performance in some cases. Three new named arguments are added to the File class: page_buf_size, min_meta_keep, and min_raw_keep.
  • Get and reset HDF5 page buffering statistics. Available as the low-level API of the FileID class.
  • The built-in reversed() function now works with various dictionary-like interfaces: Group, GroupID, Group.keys(), Group.values() and Group.items().

Exposing HDF5 functions

  • H5Pset_file_locking and H5Pget_file_locking (for HDF5 >= 1.12.1 or 1.10.x >= 1.10.7)
  • H5Freset_page_buffering_stats
  • H5Fget_page_buffering_stats
  • H5Pset_file_space_page_size
  • H5Pget_file_space_page_size
  • H5Pset_page_buffer_size
  • H5Pget_page_buffer_size

Breaking changes & deprecations

  • Dataset timestamps are no longer written by default for new datasets. Pass track_times=True to Group.create_dataset() if you need them.
  • The IPython completer code no longer tries to work with very old versions of IPython (before 1.0).

Bug fixes

  • Fix a memory leak when reading data. This particularly affected code making many small reads.
  • dataset == array now behaves the same way as array == dataset: the HDF5 dataset is read and NumPy makes a boolean array.
  • The IPython completer code no longer imports the readline module.