# Release notes for PyTables 3.10 series

Author:

  PyTables Developers

Contact:

  pytables-dev@googlegroups.com

## Changes from 3.10.1 to 3.10.2

### Improvements

- Wheels for Python v3.13 are now provided (gh-1217).

- Convert HDF5-Blosc sources into Git submodule (gh-1197).

- Complete code re-formatting and improvement of variables naming. Now the entire codebase is fully PEP8 compliant and regularly checked in CI with black, flake8 and isort (gh-867).

- The automatic build of the documentation has been re-worked.

- Use numpy.typing.DTypeLike over np.dtype for parameters. Thanks to Joel T. Collins

- Accept IsDescription, dict, numpy.dtype as table descriptions. Thanks to Joel T. Collins

- Allow multi-dimension chunkshape when creating arrays. Thanks to Joel T. Collins

- Improve the way setup.py finds runtime libs (see gh-1219 and gh-1223). Thanks to Jason Bacon.

### Bugfixes

- Fixed blosc2 search paths.

- Fixed the copy of tables with createparents=True (gh-1208).

- Fixed links in README.rst (gh-1218). Thanks to David Poznik.

- Fixed the function for writing cpu info to cache file (gh-#1222). Thanks to Adrian Altenhoff.

- Fixed an incorrect access to the obsolete sys.maxint in pttree (gh-1224).

## Changes from 3.10.0 to 3.10.1

### Bugfixes

- Fix version constraints for the `numpy` runtime requirements (gh-1204). For a mistake it didn’t allow to use PyTables with `numpy` 2.x.

- Fix compatibility with PyPy (gh-1205), Thanks to Michał Górny.

### Improvements

- Enforce numpy >= 2 as build constraint (see discussion in gh-1200).

- Use tuple of plain ints for chunk info coordinates. Thanks to Ivan Vilata-i-Balaguer.

- Enable faulthandler in tables.tests.test_all. Thanks to Eric Larson.

## Changes from 3.9.2 to 3.10.0

### New features

- New direct chunking API which allows access to raw chunk data skipping the HDF5 filter pipeline (cutting overhead, see “Optimization tips” in User’s Guide), as well as querying chunk information (gh-1187). Thanks to Ivan Vilata and Francesc Alted. This development was funded by a NumFOCUS grant.

### Improvements

- This release is finally compatible with NumPy 2, with wheels being built against it so that they are still binary-compatible with NumPy 1 installations (gh-1176, gh-1183, gh-1184, gh-1192, gh-1195, gh-1160, gh-1172, gh-1185). NumPy >= 1.20 is required now. Thanks to Antonio Valentino, Maximilian Linhoff and Eric Larson.

- Fix compatibility with Python 3.13 (gh-1166), Python >= 3.10 required. Cython 3.0.10 is required for building. Thanks to Antonio Valentino.

- Add type hints to atom.py (gh-1079). This also narrows some types, only allowing bytes to be stored in VLStringAtom and only str in VLUnicodeAtom. Thanks to Nils Carlson.

- Add type hints to (hopefully) the complete PyTables API (gh-1119, gh-1120, gh-1121, gh-1123, gh-1124, gh-1125, gh-1125, gh-1126, gh-1128, gh-1129, gh-1130, gh-1131, gh-1132, gh-1133, gh-1135, gh-1136, gh-1137, gh-1138, gh-1139, gh-1140, gh-1141, gh-1142, gh-1143, gh-1145, gh-1146, gh-1147, gh-1148, gh-1150, gh-1151, gh-1152). Thanks to Ko Stehner.

- Reduce impact of CPU information gathering by caching in local file (gh-1091, gh-1118, gh-1081). Thanks to Antti Mäkinen and Maximilian Linhoff.

### Bugfixes

- Fix Windows AMD64 build issues with Bzip2 and C-Blosc2 libraries (gh-1188). Thanks to Antonio Valentino and Eric Larson.

- Fix typos and may other language errors in docstrings (gh-1122). Thanks to Ko Stehner.

- Fix Blosc2 filter not setting dparams.schunk on decompression (gh-1110 and gh-1109). Thanks to Tom Birch.

- Fix using B2ND optimizations when Blosc2 is not the only enabled filter; move Fletcher32 compression to end of pipeline when enabled (gh-1191 and gh-1162). Thanks to Ivan Vilata and Alex Laslavic.

- Fix broken internal passing of createparents argument in Leaf.copy (gh-1127 and gh-1125). Thanks to Ko Stehner.

- Re-enable relative paths in ExternalLink class (gh-1095). Thanks to erikdl-zeiss.

- Fix using prefix in heavy tests methods of test_queries (gh-1169). Thanks to Miro Hrončok.

- Fix TypeError when computing Blosc2 search paths with missing library (gh-1188 and gh-1100). Thanks to martinowitsch, Padraic Calpin and Eric Larson.

- Avoid overflow RuntimeWarning on NumPy expectedrows value (gh-1010). Thanks to wony-zheng and Ivan Vilata.

### Other changes

- Add wheels for macOS ARM64 (Apple Silicon), set MACOSX_DEPLOYMENT_TARGET in Docker (gh-1050 and gh-1165). Thanks to Clemens Brunner, Antonio Valentino, Maximilian Linhoff and Eric Larson.

- Avoid illegal hardware instruction under macOS on M1/M2 with Rosetta and AMD64 wheels (gh-1195 and gh-1186). Thanks to Antonio Valentino and Jon Peirce.

- Produce nightly wheels (with HDF5 1.14.4), also uploaded to Scientific Python Anaconda repo. Wheels are also produced for PR workflows. Thanks to Antonio Valentino and Eric Larson (gh-1175).

- Wheels are no longer linked with the LZO library to avoid licensing issues (gh-1195). Thanks to Antonio Valentino.

- Hash-pin dependencies on wheel workflows to increase build procedure security, with support for Dependabot and Renovatebot updates (gh-1085 and gh-1015). Thanks to Joyce Brum and Diogo Teles Sant’Anna.

- Hash-pin GitHub action versions in wheels workflow. Thanks to Antonio Valentino.

- Update ReadTheDocs configuration to version 2 (gh-1092). Thanks to Maximilian Linhoff.

- Assorted fixes to b2nd benchmark, with new results. Thanks to Ivan Vilata.

- Point users to example code to handle “Selection lists cannot have repeated values” exception (gh-1161 and gh-1149). Thanks to Joshua Albert.

- Remove unused getLibrary C code. Thanks to Antonio Valentino.

- Update included C-Blosc to 1.21.6 (gh-1193). Thanks to Ivan Vilata.

- Update included HDF5-Blosc filter to 1.0.1 (gh-1194). Thanks to Ivan Vilata.

### Thanks

In alphabetical order:

- Alex Laslavic

- Antonio Valentino

- Antti Mäkinen

- Clemens Brunner

- Diogo Teles Sant’Anna

- Eric Larson

- erikdl-zeiss

- Francesc Alted

- Ivan Vilata

- Jon Peirce

- Joshua Albert

- Joyce Brum

- Ko Stehner

- martinowitsch

- Maximilian Linhoff

- Miro Hrončok

- Nils Carlson

- Padraic Calpin

- Tom Birch

- wony-zheng