Recent Releases of pytables
pytables - Release v3.10.2
Changes from 3.10.1 to 3.10.2
Improvements
- Wheels for Python v3.13 are now provided (#1217).
- Convert HDF5-Blosc sources into Git submodule (#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 (#867).
- The automatic build of the documentation has been re-worked.
- Use
numpy.typing.DTypeLikeovernp.dtypefor parameters. Thanks to Joel T. Collins. - Accept
IsDescription,dict,numpy.dtypeas table descriptions. Thanks to Joel T. Collins. - Allow multi-dimension
chunkshapewhen creating arrays. Thanks to Joel T. Collins. - Improve the way
setup.pyfinds runtime libs (see #1219 and #1223). Thanks to Jason Bacon.
Bugfixes
- Fixed blosc2 search paths.
- Fixed the copy of tables with
createparents=True(#1208). - Fixed links in
README.rst(#1218). Thanks to David Poznik. - Fixed the function for writing cpu info to cache file (#1222). Thanks to Adrian Altenhoff.
- Fixed an incorrect access to the obsolete
sys.maxintinpttree(#1224).
- Python
Published by avalentino over 1 year ago
pytables - Release v3.10.1
Changes from 3.10.1 to 3.10.0
Bugfixes
- Fix version constraints for the
numpyruntime requirements (#1204). For a mistake it didn't allow to use PyTables withnumpy2.x. - Fix compatibility with PyPy (:issue:
1205), Thanks to Michał Górny.
Improvements
- Enforce
numpy >= 2as build constraint (see discussion in #1200). - Use tuple of plain ints for chunk info coordinates. Thanks to Ivan Vilata-i-Balaguer.
- Enable
faulthandlerintables.tests.test_all. Thanks to Eric Larson.
- Python
Published by avalentino almost 2 years ago
pytables - Release v3.10.0
Changes from 3.10.0 to 3.9.2
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 (#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~~ (#1176, #1183, #1184, #1192, #1195, #1160, #1172, #1185). NumPy >= 1.20 is required now. Thanks to Antonio Valentino, Maximilian Linhoff and Eric Larson.
- Fix compatibility with Python 3.13 (#1166), Python >= 3.10 required. Cython 3.0.10 is required for building. Thanks to Antonio Valentino.
- Add type hints to
atom.py(#1079). This also narrows some types, only allowing bytes to be stored inVLStringAtomand only str inVLUnicodeAtom. Thanks to Nils Carlson. - Add type hints to (hopefully) the complete PyTables API (#1119, #1120, #1121, #1123, #1124, #1125, #1125, #1126, #1128, #1129, #1130, #1131, #1132, #1133, #1135, #1136, #1137, #1138, #1139, #1140, #1141, #1142, #1143, #1145, #1146, #1147, #1148, #1150, #1151, #1152). Thanks to Ko Stehner.
- Reduce impact of CPU information gathering by caching in local file (#1091, #1118, #1081). Thanks to Antti Mäkinen and Maximilian Linhoff.
Bugfixes
- Fix Windows AMD64 build issues with Bzip2 and C-Blosc2 libraries (#1188). Thanks to Antonio Valentino and Eric Larson.
- Fix typos and may other language errors in docstrings (#1122). Thanks to Ko Stehner.
- Fix Blosc2 filter not setting
dparams.schunkon decompression (#1110 and #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 (#1191 and #1162). Thanks to Ivan Vilata and Alex Laslavic.
- Fix broken internal passing of
createparentsargument inLeaf.copy(#1127 and #1125). Thanks to Ko Stehner. - Re-enable relative paths in
ExternalLinkclass (#1095). Thanks to erikdl-zeiss. - Fix using prefix in heavy tests methods of
test_queries(#1169). Thanks to Miro Hrončok. - Fix
TypeErrorwhen computing Blosc2 search paths with missing library (#1188 and #1100). Thanks to martinowitsch, Padraic Calpin and Eric Larson. - Avoid overflow
RuntimeWarningon NumPyexpectedrowsvalue (#1010). Thanks to wony-zheng and Ivan Vilata.
Other changes
- Add wheels for macOS ARM64 (Apple Silicon), set
MACOSX_DEPLOYMENT_TARGETin Docker (#1050 and #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 (#1195 and #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 (#1175).
- Wheels are no longer linked with the LZO library to avoid licensing issues (#1195). Thanks to Antonio Valentino.
- Hash-pin dependencies on wheel workflows to increase build procedure security, with support for Dependabot and Renovatebot updates (#1085 and #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 (#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 (#1161 and #1149). Thanks to Joshua Albert.
- Remove unused
getLibraryC code. Thanks to Antonio Valentino. - Update included C-Blosc to 1.21.6 (#1193). Thanks to Ivan Vilata.
- Update included HDF5-Blosc filter to 1.0.1 (#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
- Python
Published by ivilata almost 2 years ago
pytables - Release v3.9.2
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_bufferfunction). - 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
- Python
Published by ivilata over 2 years ago
pytables - Release 3.9.1
Changes from 3.9.0 to 3.9.1
- Minimum supported version for Python is 3.9 (see #1062).
- Python
Published by FrancescAlted over 2 years ago
pytables - Release v3.9.0
Changes from 3.8.0 to 3.9.0
New features
- Apply optimized slice read to Blosc2-compressed
CArrayandEArray, 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 usingpyproject.tomlas per PEP 518) andblosc2discovery 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.mdwith 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
ptrepackfailures 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_nodedocstring (#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
- Python
Published by ivilata over 2 years ago
pytables - Release v3.8.0
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.
- Python
Published by FrancescAlted over 3 years ago
pytables - Release v3.7.0
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 tablesPR #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 submodulefor 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
hdf5VersionandFile.open_count. - the :func:
get_tables_versionand :func:get_hdf5_versionfunctions are now deprecated please use the coresponding :data:tables.__version__and :data:tables.hdf5_versioninstead.
- Python
Published by avalentino over 4 years ago
pytables - Release 3.6.1
Maintenance release to fix packaging issues.
No new features or bug fixes.
- Python
Published by tomkooij over 6 years ago
pytables - Release 3.5.2
Maintenance release to fix compatibility with Python 3.8
- Python
Published by tomkooij about 7 years ago
pytables - Release 3.5.1
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
descriptionis 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 newallow_paddingparameter when opening a file. For some examples, see the newexamples/tables-with-padding.pyandexamples/attrs-with-padding.py. For details on the implementation see :issue:720. - Added a new flag
--dont-allow-paddinginptrepackutility 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.
- Python
Published by FrancescAlted over 7 years ago
pytables - Release v3.5.0
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
descriptionis 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 newallow_paddingparameter when opening a file. For some examples, see the newexamples/tables-with-padding.pyandexamples/attrs-with-padding.py. For details on the implementation see #720. - Added a new flag
--dont-allow-paddinginptrepackutility 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.
- Python
Published by FrancescAlted over 7 years ago
pytables - Release v3.4.4
Changes from 3.4.3 to 3.4.4
Improvements
- Environment variable to control the use of embedded libraries. Thanks to avalentino.
- Include citation in repository.
:issue:
690. Thanks to katrinleinweber.
Bugs fixed
- Fixed import error with numexpr 2.6.5.dev0
:issue:
685. Thanks to cgohlke. - Fixed linter warnings. Thanks to avalentino.
- Fixed for re.split() is version detection.
:issue:
687. Thanks to mingwandroid. - Fixed test failures with Python 2.7 and NumPy 1.14.3
:issue:
688& :issue:689. Thanks to oleksandr-pavlyk.
- Python
Published by jsancho-gpl about 8 years ago
pytables - Release v3.4.3
Changes from 3.4.2 to 3.4.3
Improvements
- On interactive python sessions, group/attribute
__dir__()method autocompletes children that are named as valid python identifiers. :issue:624& :issue:625thanks to ankostis. - Implement
Group.__getitem__()to have groups act as python-containers, so code like this works:hfile.root['some child']. :issue:628thanks to ankostis. - Enable building with Intel compiler (icc/icpc). Thanks to rohit-jamuar.
- PEP 519 support, using new
os.fspathmethod. Thanks to mruffalo. - Optional disable recording of ctime (metadata creation time) when creating datasets that makes possible to get bitwise identical output from repeated runs. Thanks to alex-cobb.
- Prevent from reading all rows for each coord in a VLArray when indexing using a list . Thanks to igormq.
- Internal Blosc version updated to 1.14.3
Bugs fixed
- Fixed division by zero when using
_convert_time64()with an empty nparr array. :issue:653. Thanks to alobbs. - Fixed deprecation warnings with numpy 1.14. Thanks to oleksandr-pavlyk.
- Skip DLL check when running from a frozen app.
:issue:
675. Thanks to jwiggins. - Fixed behaviour with slices out of range.
:issue:
651. Thanks to jackdbd.
- Python
Published by jsancho-gpl about 8 years ago
pytables - Release v3.4.2
Changes from 3.4.1 to 3.4.2
Improvements
- setup.py detects conda env and uses installed conda (hdf5, bzip2, lzo and/or blosc) packages when building from source.
Bugs fixed
- Linux wheels now built against built-in blosc.
- Fixed windows absolute paths in ptrepack, ptdump, ptree.
:issue:
616. Thanks to oscar6echo.
- Python
Published by tomkooij about 9 years ago
pytables - v3.4.0
Changes from 3.3.0 to 3.4.0
Improvements
- Support for HDF5 v1.10.x (see :issue:
582) - Fix compatibility with the upcoming Python 2.7.13, 3.5.3 and 3.6 versions.
See also :issue:
590. Thanks to Yaroslav Halchenko - Internal Blosc version updated to 1.11.3
- Gracefully handle cpuinfo failure. (PR #578) Thanks to Zbigniew Jędrzejewski-Szmek
- Update internal py-cpuinfo to 3.3.0. Thanks to Gustavo Serra Scalet.
Bugs fixed
- Fix conversion of python 2
longtype tosix.integer_typesin atom.py. See also :issue:598. Thanks to Kyle Keppler for reporting. - Fix important bug in bitshuffle filter in internal Blosc on big-endian
machines. See also :issue:
583. - Fix allow for long type in nextafter. (PR #587) Thanks to Yaroslav Halchenko.
- Fix unicode bug in group and tables names. :issue:
514
- Python
Published by tomkooij about 9 years ago