Releases: Blosc/python-blosc2
Release 2.2.0
-
New bytedelta filter. We have blogged about this: https://www.blosc.org/posts/bytedelta-enhance-compression-toolset/. See the examples/ndarray/bytedelta_filter.py for a sample script. We also have a short video on how bytedelta works: https://www.youtube.com/watch?v=5OXs7w2x6nw
-
The compression defaults are changed to get a better balance between compression ratio, compression speed and decompression speed. The new defaults are:
cparams.typesize = 8
cparams.clevel = 1
cparams.compcode = Codec.ZSTD
filters = [Filter.SHUFFLE]
splitmode = SplitMode.ALWAYS_SPLIT
These changes are based on the experiments performed in the blog post above.
-
dtype.itemsize
will have preference over typesize in cparams (as it was documented). -
blosc2.compressor_list(plugins=False)
do not list codec plugins by default now. If you want to list plugins too, you need to passplugins=True
. -
Internal C-Blosc2 updated to latest version (2.8.0).
Release 2.1.1
Changes from 2.0.0 to 2.1.1
-
New
NDArray
class for handling multidimensional arrays using compression. It includes:- Data type handling (fully compatible with NumPy)
- Double partitioning
See examples at: https://github.com/Blosc/python-blosc2/tree/main/examples/ndarray
NDarray docs at: https://www.blosc.org/python-blosc2/reference/ndarray_api.html
Explanatory video on why double partitioning: https://youtu.be/LvP9zxMGBng
Also, see our blog on C-Blosc2 NDim counterpart: https://www.blosc.org/posts/blosc2-ndim-intro/ -
Internal C-Blosc2 bumped to latest 2.7.1 version.
Release 2.0.0
Changes from 0.6.6 to 2.0.0
-
Add support for user-defined filters and codecs. See our blog at: https://www.blosc.org/posts/python-blosc2-pipeline/
-
API has been frozen.
Release 0.6.6
Changes from 0.6.5 to 0.6.6
- Add arm64 wheels for macosx (this time for real).
Release 0.6.5
Changes from 0.6.4 to 0.6.5
- Add arm64 wheels for macosx.
Release 0.6.4
Changes from 0.6.3 to 0.6.4
- Add arm64 wheels and remove musl builds (NumPy not having them makes the build process too long).
Release 2.6.3
Changes from 0.6.2 to 0.6.3
- Use oldest-supported-numpy for maximum compatibility.
Release 0.6.2
Changes from 0.6.1 to 0.6.2
- Updated C-Blosc2 to 2.6.0.
Release 0.6.1
Changes from 0.5.2 to 0.6.1
-
Support for Python prefilters and postfilters. With this, you can pre-process or post-process data in super-chunks automatically. This machinery is handled internally by C-Blosc2, so it is very efficient (although it cannot work in multi-thread mode due to the GIL). See the examples/ directory for different ways of using this.
-
Support for fillers. This is a specialization of a prefilter, and it allows to use Python functions to create new super-chunks from different kind of inputs (NumPy, SChunk instances, scalars), allowing computations among them and getting the result automatically compressed. See a sample script in the examples/ directory.
-
Lots of small improvements in the style, consistency and other glitches in the code. Thanks to Dimitri Papadopoulos for hist attention to detail.
-
No need to compile C-Blosc2 tests, benchs or fuzzers. Compilation time is much shorter now.
-
Added
cratio
,nbytes
andcbytes
properties toSChunk
instances. -
Added setters for
dparams
andcparams
attributes inSChunk
.
Release 0.5.2
Changes from 0.5.1 to 0.5.2
- Honor nested cparams properties in kwargs. E.g. you can do:
blosc2.save_tensor(a, "test.bl2", mode="w",
filters=[blosc2.Filter.TRUNC_PREC, blosc2.Filter.BITSHUFFLE],
filters_meta=[13, 0],
codec=blosc2.Codec.LZ4,
clevel=9)
without a need to build a proper cparams
dict first.
-
C-Blosc2 upgraded to 2.4.3. It should improve cratio for BloscLZ in combination with bitshuffle.
-
Prefer pack_tensor/save_tensor in benchs and examples