Skip to content

Releases: PyTables/PyTables

Release v3.9.2

27 Nov 12:13
v3.9.2
Compare
Choose a tag to compare

Changes from 3.9.1 to 3.9.2

Bugfixes

  • 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 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.

Improvements

  • PyTables wheels now use a threadsafe build of the HDF5 library (#1075 and #1077). Concurrent reads should be possible with no need for additional locking or monkey-patching of the file open function. Thanks to Kiet Pham.
  • Partial support for the future NumPy 2, with some tests still failing (#1068). Thanks to Thomas Grainger.
  • Relax the reading of Blosc2 NDim to cope with datasets stored with other tools (#1072), e.g. missing chunk rank/shape in filter values, having HDF5 chunks where the Blosc2 super-chunk contains more than one inner chunk, or chunks with data not padded to the full chunk size (example script and tests included). Also enhance checks, comments and logged messages. Thanks to Ivan Vilata.

Other changes

  • Drop compatibility with the obsolete HDF5 1.8 API. PyTables now requires at least the 1.10 API (#1080). Thanks to Antonio Valentino.
  • Require python-blosc2 >= 2.3.0 or c-blosc2 >= 2.11.0 (which adds support for the b2nd_copy_buffer function).
  • Use the main Conda Forge channel for Python 3.12 (#1066). Thanks to Thomas Grainger.
  • Assorted fixes to the b2nd slicing benchmark. Thanks to Ivan Vilata.
  • Assorted fixes to b2nd slicing optimization tips (#1069). Thanks to Ivan Vilata.

Thanks

In alphabetical order:

  • Antonio Valentino
  • Ivan Vilata
  • Kiet Pham
  • Thomas Grainger

Release 3.9.1

06 Oct 16:01
71cf6d1
Compare
Choose a tag to compare

Changes from 3.9.0 to 3.9.1

  • [Hot fix] Minimum supported version for Python is 3.9 (see #1062).

Changes from 3.8.0 to 3.9.0

New features

  • Apply optimized slice read to Blosc2-compressed 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.
  • Add basic API for column-level attributes as 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.

Other changes

  • Add support for the forthcoming Python 3.12 with binary wheels and automated testing.
  • Drop wheels and automated testing for Python 3.8; users or distributions may still build and test with Python 3.8 on their own (see commit ae1e60e and commit 47f5946).
  • New benchmark for ERA5 climate data. Thanks to Óscar Guiñón.
  • New "100 trillion baby" benchmark. Thanks to Francesc Alted.
  • New benchmark for querying meteorologic data. Thanks to Francesc Alted.

Improvements

  • Use 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.
  • Improve 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.
  • Enable compatibility with Cython 3 (#1008 and #1003). Thanks to Matus Valo and Michał Górny.
  • Set GitHub workflow permissions to least privileges (#1007). Thanks to Joyce Brum.
  • Add SECURITY.md with security policy (#1012 and #1011). Thanks to Joyce Brum.
  • Handle py-cpuinfo missing in some platforms (#1013). Thanks to Sam James.
  • Avoid NumPy >= 1.25 deprecations, use numpy.all, numpy.any, etc. instead. Thanks to Antonio Valentino.
  • Avoid C-related build warnings. Thanks to Antonio Valentino.
  • Streamline CI wheel building & testing with cibuildwheel, more clear distinctions between build and runtime dependencies.
  • Update included c-blosc to v1.21.5 (fixes SSE2/AVX build issue).
  • Require python-blosc2 >= 2.2.8 or c-blosc2 >= 2.10.4 (Python 3.12 support and assorted fixes).
  • Update external libraries for CI-based wheel builds (#1018 and #967):
    • hdf5 v1.14.2
    • lz4 v1.9.4
    • zlib v1.2.13

Bugfixes

  • Fix crash in Blosc2 optimized path with large tables (#995 and #996). Thanks to Francesc Alted.
  • Fix compatibility with NumExpr v2.8.5 (#1046). Thanks to Antonio Valentino.
  • Fix build errors on Windows ARM64 (#989). Thanks to Cristoph Gohlke.
  • Fix ptrepack failures with external links (#938 and #990). Thanks to Adrian Altenhoff.
  • Replace stderr messages with Python warnings (#992 and #993). Thanks to Maximilian Linhoff.
  • Fixes to CI workflow and wheel building (#1009, #1047). Thanks to Antonio Valentino.
  • Fix garbled rendering of File.get_node docstring (#1021). Thanks to Steffen Rehberg.
  • Fix open extern "C" block (#1026). Thanks to Ivan Vilata.
  • Fix Cython slice indexing under Python 3.12 (#1033). Thanks to Zbigniew Jędrzejewski-Szmek.
  • Fix unsafe temporary file creation in benchmark (#1053). Thanks to Al Arafat Tanin (Project Alpha-Omega).

Thanks

In alphabetical order:

  • Adrian Altenhoff
  • Al Arafat Tanin
  • Antonio Valentino
  • Ben Greiner
  • Cristoph Gohlke
  • Ezequiel Cimadevilla Alvarez
  • Francesc Alted
  • Ivan Vilata
  • Iwo-KX
  • Jonathan Wheeler
  • Joyce Brum
  • Laurent Repiton
  • Logan Kilpatrick
  • Mark Kittisopikul
  • Marta Iborra
  • Matus Valo
  • Maximilian Linhoff
  • Michał Górny
  • Munehiro Nishida
  • nega
  • odidev
  • Óscar Guiñón
  • Sam James
  • Sander Roet
  • Seth Troisi
  • Steffen Rehberg
  • Thorben Menne
  • xmatthias
  • Zbigniew Jędrzejewski-Szmek

Release v3.9.0

05 Oct 10:44
v3.9.0
Compare
Choose a tag to compare
Release v3.9.0 Pre-release
Pre-release

Changes from 3.8.0 to 3.9.0

New features

  • Apply optimized slice read to Blosc2-compressed 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.
  • Add basic API for column-level attributes as 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.

Other changes

  • Add support for the forthcoming Python 3.12 with binary wheels and automated testing.
  • Drop wheels and automated testing for Python 3.8; users or distributions may still build and test with Python 3.8 on their own (see commit ae1e60e and commit 47f5946).
  • New benchmark for ERA5 climate data. Thanks to Óscar Guiñón.
  • New "100 trillion baby" benchmark. Thanks to Francesc Alted.
  • New benchmark for querying meteorologic data. Thanks to Francesc Alted.

Improvements

  • Use 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.
  • Improve 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.
  • Enable compatibility with Cython 3 (#1008 and #1003). Thanks to Matus Valo and Michał Górny.
  • Set GitHub workflow permissions to least privileges (#1007). Thanks to Joyce Brum.
  • Add SECURITY.md with security policy (#1012 and #1011). Thanks to Joyce Brum.
  • Handle py-cpuinfo missing in some platforms (#1013). Thanks to Sam James.
  • Avoid NumPy >= 1.25 deprecations, use numpy.all, numpy.any, etc. instead. Thanks to Antonio Valentino.
  • Avoid C-related build warnings. Thanks to Antonio Valentino.
  • Streamline CI wheel building & testing with cibuildwheel, more clear distinctions between build and runtime dependencies.
  • Update included c-blosc to v1.21.5 (fixes SSE2/AVX build issue).
  • Require python-blosc2 >= 2.2.8 or c-blosc2 >= 2.10.4 (Python 3.12 support and assorted fixes).
  • Update external libraries for CI-based wheel builds (#1018 and #967):
    • hdf5 v1.14.2
    • lz4 v1.9.4
    • zlib v1.2.13

Bugfixes

  • Fix crash in Blosc2 optimized path with large tables (#995 and #996). Thanks to Francesc Alted.
  • Fix compatibility with NumExpr v2.8.5 (#1046). Thanks to Antonio Valentino.
  • Fix build errors on Windows ARM64 (#989). Thanks to Cristoph Gohlke.
  • Fix ptrepack failures with external links (#938 and #990). Thanks to Adrian Altenhoff.
  • Replace stderr messages with Python warnings (#992 and #993). Thanks to Maximilian Linhoff.
  • Fixes to CI workflow and wheel building (#1009, #1047). Thanks to Antonio Valentino.
  • Fix garbled rendering of File.get_node docstring (#1021). Thanks to Steffen Rehberg.
  • Fix open extern "C" block (#1026). Thanks to Ivan Vilata.
  • Fix Cython slice indexing under Python 3.12 (#1033). Thanks to Zbigniew Jędrzejewski-Szmek.
  • Fix unsafe temporary file creation in benchmark (#1053). Thanks to Al Arafat Tanin (Project Alpha-Omega).

Thanks

In alphabetical order:

  • Adrian Altenhoff
  • Al Arafat Tanin
  • Antonio Valentino
  • Ben Greiner
  • Cristoph Gohlke
  • Ezequiel Cimadevilla Alvarez
  • Francesc Alted
  • Ivan Vilata
  • Iwo-KX
  • Jonathan Wheeler
  • Joyce Brum
  • Laurent Repiton
  • Logan Kilpatrick
  • Mark Kittisopikul
  • Marta Iborra
  • Matus Valo
  • Maximilian Linhoff
  • Michał Górny
  • Munehiro Nishida
  • nega
  • odidev
  • Óscar Guiñón
  • Sam James
  • Sander Roet
  • Seth Troisi
  • Steffen Rehberg
  • Thorben Menne
  • xmatthias
  • Zbigniew Jędrzejewski-Szmek

Release v3.8.0

23 Dec 13:29
Compare
Choose a tag to compare

Changes from 3.7.0 to 3.8.0

Improvements

  • Support for Python 3.11 has been added (PR #962).
  • Support for Python 3.6 and Python 3.7 has been dropped (PR #966).
  • Added a new (registered) HDF5 filter for Blosc2 compressor (PR #969).
  • Added optimized paths for Blosc2 reading and writing in tables. This
    bypasses the HDF5 filter pipeline by building the Blosc2 CFrames and
    sending them to the HDF5 direct chunking machinery (PR #969).
  • Internal C-Blosc sources updated to 1.21.2.
  • Thanks to Oscar Guiñon, Francesc Alted for implementing Blosc2 the
    support and NumFOCUS for providing a grant for that.

Other changes

  • Starting form this release, C source files generated by Cython are no
    longer included in the source distribution package.
  • Pre-built HTML documentation is no longer included in the source package.

Release v3.7.0

28 Dec 21:59
v3.7.0
7eaf6bc
Compare
Choose a tag to compare

Improvements

  • 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 :mod: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).

Bugfixes

  • 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).

Other changes

  • Drop the deprecated hdf5Version and File.open_count.
  • the :func:get_tables_version and :func:get_hdf5_version functions are
    now deprecated please use the coresponding :data:tables.__version__ and
    :data:tables.hdf5_version instead.

Release 3.6.1

28 Oct 19:25
Compare
Choose a tag to compare

Maintenance release to fix packaging issues.

No new features or bug fixes.

v3.6.0: Release 3.6.0

14 Oct 12:58
Compare
Choose a tag to compare
Changes from 3.5.3 to 3.6.0
===========================

PyTables 3.6 no longer supports Python 2.7 see PR #747.

Improvements
------------
 - Full python 3.8 support.
 - On Windows PyTables wheels on PyPI are linked to `pytables_hdf5.dll` instead
   of `hdf5.dll` to prevent collisions with other packages/wheels that also
   vendor `hdf5.dll`. This should prevent problems that arise when a different
   version of a dll is imported than the version to which the program was
   linked to. This problem is known as "DLL Hell".
   With the renaming of the HDF5 DLL to `pytables_hdf5.dll` these problems
   should be solved.

 Bugfixes
 --------
 - Bugfix for HDF5 files/types with padding. For details see :issue:`734`.
 - More fixes for python 3.8 compatibility: Replace deprecated time.clock
   with time.perf_counter
     Thanks to Sergio Pascual (sergiopasra). see :issue:`744` and PR #745.
     - Improvements in tests as well as clean up from dropping Python 2.7 support.
       Thanks to Seth Troisi (sethtroisi).

Release 3.5.2

30 May 18:14
Compare
Choose a tag to compare

Maintenance release to fix compatibility with Python 3.8

Release 3.5.1

14 Mar 12:32
Compare
Choose a tag to compare

Changes from 3.5.0 to 3.5.1

  • Maintenance release to fix how PyPi repo is handling wheel versions.

Changes from 3.4.4 to 3.5.0

Improvements

  • When copying data from native HDF5 files with padding in compound types,
    the padding is not removed now by default. This allows for better
    compatibility with existing HDF5 applications that expect the padding
    to stay there.
    Also, when the 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.
  • Added a new flag --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.
  • Improve compatibility with numpy 1.16.
  • Improve detection of the LZO2 library at build time.
  • Suppress several warnings.
  • Add AVX2 support for Windows. See PR #716. Thanks to Robert McLeod.

Release v3.5.0

13 Mar 18:19
Compare
Choose a tag to compare

Changes from 3.4.4 to 3.5.0

Improvements

  • When copying data from native HDF5 files with padding in compound types,
    the padding is not removed now by default. This allows for better
    compatibility with existing HDF5 applications that expect the padding
    to stay there.
    Also, when the 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 #720.
  • Added a new flag --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.
  • Improve compatibility with numpy 1.16.
  • Improve detection of the LZO2 library at build time.
  • Suppress several warnings.
  • Add AVX2 support for Windows. See PR #716. Thanks to Robert McLeod.