# What’s new in h5py 2.6

## Support for HDF5 Virtual Dataset API

Initial support for the HDF5 Virtual Dataset API, which was introduced in HDF5 1.10, was added to the low-level API. Ideas and input for how this should work as part of the high-level interface are welcome.

This work was added in PR 663 by Aleksandar Jelenak.

## Add MPI Collective I/O Support

Support for using MPI Collective I/O in both low-level and high-level code has been added. See the collective_io.py example for a simple demonstration of how to use MPI Collective I/O with the high level API.

This work was added in PR 648 by Jialin Liu.

## Numerous build/testing/CI improvements

There were a number of improvements to the setup.py file, which should mean that pip install h5py should work in most places. Work was also done to clean up the current testing system, using tox is the recommended way of testing h5py across different Python versions. See PR 576 by Jakob Lombacher, PR 640 by Lawrence Mitchell, and PR 650, PR 651 and PR 658 by James Tocknell.

## Cleanup of codebase based on pylint

There was a large cleanup of pylint-identified problems by Andrew Collette (PR 578, PR 579).

## Fixes to low-level API

Fixes to the typing of functions were added in PR 597 by Ulrik Kofoed Pedersen, PR 589 by Peter Chang, and PR 625 by Spaghetti Sort. A fix for variable-length arrays was added in PR 621 by Sam Mason. Fixes to compound types were added in PR 639 by @nevion and PR 606 by Yu Feng. Finally, a fix to type conversion was added in PR 614 by Andrew Collette.

## Documentation improvements

- Updates to FAQ by Dan Guest (PR 608) and Peter Hill (PR 607).

- Updates MPI-related documentation by Jens Timmerman (PR 604) and Matthias König (PR 572).

- Fixes to documentation building by Ghislain Antony Vaillant (PR 562, PR 561).

- Update PyTables link (PR 574 by Dominik Kriegner)

- Add File opening modes to docstring (PR 563 by Antony Lee)

## Other changes

- Add Dataset.ndim (PR 649, PR 660 by @jakirkham, PR 661 by James Tocknell)

- Fix import errors in IPython completer (PR 605 by Niru Maheswaranathan)

- Turn off error printing in new threads (PR 583 by Andrew Collette)

- Use item value in KeyError instead of error message (PR 642 by Matthias Geier)

## Acknowledgements