NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3062 most downloaded on PyPI
Hierarchical datasets for Python
Last release 7 months ago
01 Mar 2026
Release timing varies
gaps range from 2 months to 2.2 years
Some releases are documented
notes for 17 of 45 stable releases
1 version withdrawn
withdrawn after publishing
15 years old
49 releases · first in 2011
Fix blosc2 loading (see #1305).
Table.where (and hence Table.read_where, Table.get_where_list and Table.append_where) now treats a start with no stop like a Python slice, i.e. the rows from start to the last one are considered. Previously only one row was considered (797).
Add git submodule for hdf5-blosc2 v3.0.1.
Minimum Cython version is now v3.2
Do not use plain eval in PyTables utilities (fixes security issues GHSA-54cf-28h8-9p23 and GHSA-6mmx-p77c-4hmr).
Fix compatibility with c-blosc2 3.x.
Build wheels against HDF5 2.2.0; fix blosc2 filter buffer size.
The HDF5 1.14.6 bundled in PyTables v3.11.1 wheels was affected by ~30 published CVEs whose fixes shipped only on the HDF5 2.x line (see HDFGroup/cve_hdf5), including CVE-2025-44905 and CVE-2025-44904 (both rated 8.8 HIGH by NVD) and the CVE-2026-17572/17573/17574 batch fixed in 2.2.0.
Fix typos in docstrings, comments and error messages.
Fix issue with non-zero direct-chunk filter mask (1325).
Fix infinite busy loop in ObjectCache.updateslot (1254).
Fix VLArray.append after truncate() writing past the new extent and reading back empty values (1102).
Thanks to:
Teddy Tennant
Jacob Rideout
Adrian Altenhoff
maxtaran2010
One column per quarter.
Set Cython "freethreading_compatible" directive. Please refer to https://www.pytables.org/cookbook/threading.html for details about threading support.
Thanks to:
Wheels for Python v3.13 are now provided (#1217).
numpy.typing.DTypeLike over np.dtype for parameters. Thanks to Joel T. Collins.IsDescription, dict, numpy.dtype as table descriptions. Thanks to Joel T. Collins.chunkshape when creating arrays. Thanks to Joel T. Collins.setup.py finds runtime libs (see #1219 and #1223). Thanks to Jason Bacon.createparents=True (#1208).README.rst (#1218). Thanks to David Poznik.sys.maxint in pttree (#1224).Fix version constraints for the numpy runtime requirements (#1204). For a mistake it didn't allow to use PyTables with numpy 2.x.
numpy runtime requirements
(#1204).
For a mistake it didn't allow to use PyTables with numpy 2.x.1205), Thanks to Michał Górny.numpy >= 2 as build constraint (see discussion in #1200).faulthandler in tables.tests.test_all. Thanks to Eric Larson.New direct chunking API which allows access to raw chunk data skipping the HDF5 filter pipeline (cutting overhead, see "Optimization tips" in User's G
atom.py (#1079). This also narrows some types, only allowing bytes to be stored in VLStringAtom and only str in VLUnicodeAtom. Thanks to Nils Carlson.dparams.schunk on decompression (#1110 and #1109). Thanks to Tom Birch.createparents argument in Leaf.copy (#1127 and #1125). Thanks to Ko Stehner.ExternalLink class (#1095). Thanks to erikdl-zeiss.test_queries (#1169). Thanks to Miro Hrončok.TypeError when computing Blosc2 search paths with missing library (#1188 and #1100). Thanks to martinowitsch, Padraic Calpin and Eric Larson.RuntimeWarning on NumPy expectedrows value (#1010). Thanks to wony-zheng and Ivan Vilata.MACOSX_DEPLOYMENT_TARGET in Docker (#1050 and #1165). Thanks to Clemens Brunner, Antonio Valentino, Maximilian Linhoff and Eric Larson.getLibrary C code. Thanks to Antonio Valentino.In alphabetical order:
Fix the assembly of returned slice data in Blosc2 NDim optimized slice reads by using Blosc2's b2nd_copy_buffer (#1078). The bug only showed up when t
b2nd_copy_buffer (#1078). The bug only showed up when the chunk did not fully cover the innermost dimension. Add unit tests to ckeck for regressions, along with foreign-generated files, and enable and fix Blosc2 NDim tests which were not being run. Thanks to Ivan Vilata.b2nd_copy_buffer function).In alphabetical order:
Avoid NumPy >= 1.25 deprecations, use numpy.all, numpy.any, etc. instead. Thanks to Antonio Valentino.
CArray and EArray, with Blosc2 NDim 2-level partitioning for multidimensional arrays (#1056). See "Multidimensional slicing and chunk/block sizes" in the User's Guide. Thanks to Marta Iborra and Ivan Vilata. This development was funded by a NumFOCUS grant.Col._v_col_attrs (#893 and #821). Thanks to Jonathan Wheeler, Thorben Menne, Ezequiel Cimadevilla Alvarez, odidev, Sander Roet, Antonio Valentino, Munehiro Nishida, Zbigniew Jędrzejewski-Szmek, Laurent Repiton, xmatthias, Logan Kilpatrick.H5Dchunk_iter (when available) to speed up walking over many chunks in a very large table, as well as with random reads (#991, #997, #999). Thanks to Francesc Alted and Mark Kittisopikul.setup.py (now using pyproject.toml as per PEP 518) and blosc2 discovery mechanism. Blosc2 may be used both via python-blosc2 or system c-blosc2 (#987, #1000, #998, #1017, #1045). Thanks to Antonio Valentino, Ben Greiner, Iwo-KX, nega.SECURITY.md with security policy (#1012 and #1011). Thanks to Joyce Brum.numpy.all, numpy.any, etc. instead. Thanks to Antonio Valentino.cibuildwheel, more clear distinctions between build and runtime dependencies.ptrepack failures with external links (#938 and #990). Thanks to Adrian Altenhoff.File.get_node docstring (#1021). Thanks to Steffen Rehberg.extern "C" block (#1026). Thanks to Ivan Vilata.In alphabetical order:
Avoid NumPy >= 1.25 deprecations, use numpy.all, numpy.any, etc. instead. Thanks to Antonio Valentino.
CArray and EArray, with Blosc2 NDim 2-level partitioning for multidimensional arrays (#1056). See "Multidimensional slicing and chunk/block sizes" in the User's Guide. Thanks to Marta Iborra and Ivan Vilata. This development was funded by a NumFOCUS grant.Col._v_col_attrs (#893 and #821). Thanks to Jonathan Wheeler, Thorben Menne, Ezequiel Cimadevilla Alvarez, odidev, Sander Roet, Antonio Valentino, Munehiro Nishida, Zbigniew Jędrzejewski-Szmek, Laurent Repiton, xmatthias, Logan Kilpatrick.H5Dchunk_iter (when available) to speed up walking over many chunks in a very large table, as well as with random reads (#991, #997, #999). Thanks to Francesc Alted and Mark Kittisopikul.setup.py (now using pyproject.toml as per PEP 518) and blosc2 discovery mechanism. Blosc2 may be used both via python-blosc2 or system c-blosc2 (#987, #1000, #998, #1017, #1045). Thanks to Antonio Valentino, Ben Greiner, Iwo-KX, nega.SECURITY.md with security policy (#1012 and #1011). Thanks to Joyce Brum.numpy.all, numpy.any, etc. instead. Thanks to Antonio Valentino.cibuildwheel, more clear distinctions between build and runtime dependencies.ptrepack failures with external links (#938 and #990). Thanks to Adrian Altenhoff.File.get_node docstring (#1021). Thanks to Steffen Rehberg.extern "C" block (#1026). Thanks to Ivan Vilata.In alphabetical order:
Support for Python 3.11 has been added (PR #962).
Stop using appveyor and deprecated ci-helpers (closes #827).
Compatibility with Python 3.10, numpy 1.21 and HDF5 1.12.
Support for Python 3.5 has been dropped (#840 and #850).
Windows: Significantly faster import tables PR #781. Thanks to Christoph Gohlke.
Internal C-Blosc sources updated to 1.21.1 (#931). Note that, starting from C-Blosc 1.19 does not include the Snappy codec sources anymore, so Snappy will be not available if you compile from included sources; other packages (like conda or wheels), may (or may not) include it.
Stop using appveyor and deprecated ci-helpers (closes #827).
Switch to git submodule for the management of vendored c-blosc sources.
CI moved to GitHub Actions (GHA).
Drop Travis-CI.
Improved code formatting and notation consistency (#873, #868, #865 thanks to Miroslav Šedivý).
Improve the use of modern Python including pathlib, f-strings (#859, #855, #839 and #818 thanks to Miroslav Šedivý).
Several improvements to wheels generation in CI (thanks to Andreas Motl @amotl and Matthias @xmatthias).
Simplified management of version information.
Drop dependency on the deprecated distutils.
Modernize the setup script and add support for PEP517 (#907).
Fix pkg-config (setup.py) for Python 3.9 on Debian. Thanks to Marco Sulla PR #792.
Fix ROFileNode fails to return the fileno() (#633).
Do not flush read only files (#915 thanks to @lrepiton).
Drop the deprecated hdf5Version and File.open_count.
the get_tables_version and get_hdf5_version functions are now deprecated please use the coresponding tables.__version__ and tables.hdf5_version instead.
Maintenance release to fix packaging issues.
Maintenance release to fix packaging issues.
No new features or bug fixes.
Maintenance release to fix compatibility with Python 3.8
Maintenance release to fix compatibility with Python 3.8
Maintenance release to fix how PyPi repo is handling wheel versions.
description is a NumPy struct array with padding, this
is honored now. The previous behaviour (i.e. getting rid of paddings) can
be replicated by passing the new allow_padding parameter when opening
a file. For some examples, see the new examples/tables-with-padding.py
and examples/attrs-with-padding.py. For details on the implementation
see :issue:720.--dont-allow-padding in ptrepack utility so as to
replicate the previous behaviour of removing padding during file copies.
The default is to honor the original padding in copies.Environment variable to control the use of embedded libraries. Thanks to avalentino.
690. Thanks to katrinleinweber.685. Thanks to cgohlke.687. Thanks to mingwandroid.688 & :issue:689. Thanks to oleksandr-pavlyk.Fixed deprecation warnings with numpy 1.14. Thanks to oleksandr-pavlyk.
__dir__() method
autocompletes children that are named as valid python identifiers.
:issue:624 & :issue:625 thanks to ankostis.Group.__getitem__() to have groups act as python-containers,
so code like this works: hfile.root['some child'].
:issue:628 thanks to ankostis.os.fspath method.
Thanks to mruffalo._convert_time64() with an empty
nparr array.
:issue:653. Thanks to alobbs.675. Thanks to jwiggins.651. Thanks to jackdbd.setup.py detects conda env and uses installed conda (hdf5, bzip2, lzo and/or blosc) packages when building from source.
616. Thanks to oscar6echo.Fixed critical bug in ptrepack
Fixed critical bug in ptrepack
Support for HDF5 v1.10.x (see 582)
582)590. Thanks to Yaroslav Halchenkolong type to six.integer_types in atom.py.
See also :issue:598. Thanks to Kyle Keppler for reporting.583.514Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →