blosc2 3.3.0__tar.gz → 3.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {blosc2-3.3.0 → blosc2-3.3.2}/ANNOUNCE.rst +6 -7
- {blosc2-3.3.0 → blosc2-3.3.2}/PKG-INFO +3 -2
- {blosc2-3.3.0 → blosc2-3.3.2}/RELEASE_NOTES.md +36 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/python-blosc2.rst +1 -1
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/linear_algebra.rst +2 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/ndarray.rst +1 -0
- blosc2-3.3.2/examples/c2array-get-slice.py +37 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/arange-constructor.py +1 -1
- {blosc2-3.3.0 → blosc2-3.3.2}/pyproject.toml +3 -2
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/__init__.py +2 -1
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/blosc2_ext.pyx +106 -87
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/core.py +8 -3
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/lazyexpr.py +32 -12
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/ndarray.py +172 -35
- blosc2-3.3.2/src/blosc2/version.py +1 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lazyexpr.py +89 -0
- blosc2-3.3.2/tests/ndarray/test_transpose.py +235 -0
- blosc2-3.3.0/src/blosc2/version.py +0 -1
- blosc2-3.3.0/tests/ndarray/test_transpose.py +0 -104
- {blosc2-3.3.0 → blosc2-3.3.2}/.gitignore +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/.guix/modules/python-blosc2-package.scm +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/.guix-channel +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/.pre-commit-config.yaml +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/CMakeLists.txt +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/CONTRIBUTING.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/LICENSE.txt +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/README.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/README_DEVELOPERS.md +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/RELEASING.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/code_of_conduct.md +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-favicon_32x32.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-favicon_64x64.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-logo_128.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-logo_256.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/css/custom.css +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/conf.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/development/code-of-conduct.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/development/contributing.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/development/index.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/index.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/installation.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/overview.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/01.ndarray-basics.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/02.lazyarray-expressions.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/03.lazyarray-udf.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/04.reductions.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/05.persistent-reductions.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/06.remote_proxy.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/07.schunk-basics.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/08.schunk-slicing_and_beyond.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/10.ucodecs-ufilters.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/11.prefilters.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/12.postfilters.ipynb +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/blosc2-pipeline.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/blosc2-pipeline.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/lazyexpr-broadcast.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/3D-cube-plane.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/3D-cube.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/memory-access-2D-x.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/memory-access-2D-y.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/remote_proxy.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/backward.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/backward.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder2.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder2.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder2.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder2.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/forward.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/forward.svg +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/index.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/array_operations.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__getitem__.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__init__.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__len__.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__setitem__.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.append_data.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.decompress_chunk.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.delete_chunk.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.fill_special.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.filler.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.get_chunk.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.get_slice.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.insert_chunk.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.insert_data.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.iterchunks.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.iterchunks_info.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.postfilter.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.prefilter.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.remove_postfilter.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.remove_prefilter.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.to_cframe.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.update_chunk.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.update_data.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/c2array.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/classes.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/decorators.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/index.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/lazy_functions.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/lazyarray.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/low_level.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/ndfield.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/proxy.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/proxyndsource.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/proxysource.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/reduction_functions.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/save_load.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/schunk.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/storage.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/utilities.rst +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/doc/release_notes/index.md +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/btune.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/compress2_decompress2.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/compress_decompress.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/filler.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/gil.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/mmap-rw.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/asarray_.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/broadcast_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/buffer.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/bytedelta_filter.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/c2array_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_fields.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_udf_numba.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_where.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/copy_.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/empty_.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/eye-constructor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/filter_sort_fields.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/formats.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/fromiter-constructor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/general_expressions.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/getitem.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/iterchunks_info.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/jit-expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/jit-numpy-funcs.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/jit-reduc.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/linspace-constructor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/lists-vs-bools-idx.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/meta.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/ndarray_copy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/ndmean.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/persistency.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/proxy-carray.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/proxy-ndarray.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_and_enlarge.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_expr_save.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_string_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/resize_.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/work_with_numpy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/zfp_codec.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/pack_array.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/pack_tensor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/postfilter1.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/postfilter2.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/postfilter3.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/prefilter.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/save_tensor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/schunk.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/schunk_roundtrip.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ucodecs.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/ufilters.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/examples/vlmeta.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/generate_version.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/guix.scm +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/Complete-Write-Read-B2ND.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/M1-i386-vs-arm64-pack.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/M1-i386-vs-arm64-unpack.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/Read-Partial-Slices-B2ND.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/b2nd-2level-parts.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/eval-expr-full-mem-M2.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/eval-expr-scarce-mem-M2.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-dask-large.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-dask-small.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-expr-large.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-expr.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/linspace-compress.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/linspace-decompress.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/pack-array-cratios.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/reduc-float64-amd.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/images/reduc-float64-log-amd.png +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/pytest.ini +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/c2array.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/helpers.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/info.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/proxy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/schunk.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/storage.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/conftest.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_auto_parts.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_buffer.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_c2array_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_c2array_reductions.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_c2array_udf.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_copy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_empty.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_evaluate.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_full.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_get_slice_nchunks.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_getitem.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_iterchunks_info.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_jit.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lazyexpr_fields.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lazyudf.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lossy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_matmul.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_metalayers.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_mode.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_nans.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_ndarray.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_numpy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_persistency.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_proxy.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_proxy_c2array.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_proxy_expr.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_reductions.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_resize.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_setitem.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_slice.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_squeeze.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_struct_dtype.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_zeros.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_bytes_array.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_comp_info.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_compress2.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_compression_parameters.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_compressors.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_decompress.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_iterchunks.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_mmap.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_open.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_open_c2array.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_pathlib.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_postfilters.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_prefilters.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_proxy_schunk.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_python_blosc.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_constructor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_delete.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_get_slice.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_get_slice_nchunks.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_insert.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_set_slice.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_update.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_storage.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_tensor.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_ucodecs.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_ufilters.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_vlmeta.py +0 -0
- {blosc2-3.3.0 → blosc2-3.3.2}/update_version.py +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
Announcing Python-Blosc2 3.3.
|
|
1
|
+
Announcing Python-Blosc2 3.3.2
|
|
2
2
|
==============================
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
See benchmarks at: https://github.com/Blosc/python-blosc2/blob/main/bench/ndarray/aligned_chunks.py
|
|
4
|
+
This is a bugfix release, with some minor optimizations. We fixed
|
|
5
|
+
specially a bug in the determination of chunk shape in constructors
|
|
6
|
+
on CPUs with large L3 cache sizes (like AMD EPYC). We also fixed a
|
|
7
|
+
bug preventing the correct chaining of *string* lazy expressions for
|
|
8
|
+
logical operators (``&``, ``|``, ``^``...).
|
|
10
9
|
|
|
11
10
|
You can think of Python-Blosc2 3.x as an extension of NumPy/numexpr that:
|
|
12
11
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: blosc2
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.2
|
|
4
4
|
Summary: A fast & compressed ndarray library with a flexible compute engine.
|
|
5
5
|
Author-Email: Blosc Development Team <blosc@blosc.org>
|
|
6
6
|
Maintainer-Email: Blosc Development Team <blosc@blosc.org>
|
|
@@ -15,12 +15,13 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
15
15
|
Classifier: Operating System :: Microsoft :: Windows
|
|
16
16
|
Classifier: Operating System :: Unix
|
|
17
17
|
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
22
|
Project-URL: homepage, https://github.com/Blosc/python-blosc2
|
|
22
23
|
Project-URL: documentation, https://www.blosc.org/python-blosc2/python-blosc2.html
|
|
23
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.10
|
|
24
25
|
Requires-Dist: numpy>=1.26
|
|
25
26
|
Requires-Dist: ndindex
|
|
26
27
|
Requires-Dist: msgpack
|
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Release notes
|
|
2
2
|
|
|
3
|
+
## Changes from 3.3.1 to 3.3.2
|
|
4
|
+
|
|
5
|
+
* Fixed a bug in the determination of chunk shape for the `NDArray` constructor.
|
|
6
|
+
This was causing problems when creating `NDArray` instances with a CPU that
|
|
7
|
+
was reporting a L3 cache size close (or exceeding) 2 GB. See PR #392.
|
|
8
|
+
|
|
9
|
+
* Fixed a bug preventing the correct chaining of *string* lazy expressions for
|
|
10
|
+
logical operators (`&`, `|`, `^`...). See PR #391.
|
|
11
|
+
|
|
12
|
+
* More performance optimization for `blosc2.permute_dims`. Thanks to
|
|
13
|
+
Ricardo Sales Piquer (@ricardosp4) for the implementation.
|
|
14
|
+
|
|
15
|
+
* Now, storage defaults (`blosc2.storage_dflts`) are honored, even if no
|
|
16
|
+
`storage=` param is used in constructors.
|
|
17
|
+
|
|
18
|
+
## Changes from 3.3.0 to 3.3.1
|
|
19
|
+
|
|
20
|
+
* In our effort to better adapt to better adapt to the array API
|
|
21
|
+
(https://data-apis.org/array-api/latest/), we have introduced
|
|
22
|
+
permute_dims() and matrix_transpose() functions, and the .T property.
|
|
23
|
+
This replaces to previous transpose() function, which is now deprecated.
|
|
24
|
+
See PR #384. Thanks to Ricardo Sales Piquer (@ricardosp4).
|
|
25
|
+
|
|
26
|
+
* Constructors like `arange()`, `linspace()` and `fromiter()` now
|
|
27
|
+
use far less memory when creating large arrays. As an example, a 5 TB
|
|
28
|
+
array of 8-byte floats now uses less than 200 MB of memory instead of
|
|
29
|
+
170 GB previously. See PR #387.
|
|
30
|
+
|
|
31
|
+
* Now, when opening a lazy expression with `blosc2.open()`, and there is
|
|
32
|
+
a missing operand, the open still works, but the dtype and shape
|
|
33
|
+
attributes are None. This is useful for lazy expressions that have
|
|
34
|
+
lost some operands, but you still want to open them for inspection.
|
|
35
|
+
See PR #385.
|
|
36
|
+
|
|
37
|
+
* Added an example of getting a slice out of a C2Array.
|
|
38
|
+
|
|
3
39
|
## Changes from 3.2.1 to 3.3.0
|
|
4
40
|
|
|
5
41
|
* New `blosc2.transpose()` function for transposing 2D NDArray instances
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<p style="text-align: center; color: black; background-color: rgba(230, 169, 9, 0.65);">
|
|
8
8
|
<a href="https://github.com/Blosc/python-blosc2/blob/main/RELEASE_NOTES.md"
|
|
9
|
-
style="font-size: 1.5em;">Version 3.
|
|
9
|
+
style="font-size: 1.5em;">Version 3.3.1 released on 2025-04-20!</a>
|
|
10
10
|
<span style="display: inline-block; width: 20px;"></span>
|
|
11
11
|
<span style="font-family: monospace;">pip install blosc2 -U</span>
|
|
12
12
|
</p>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#######################################################################
|
|
2
|
+
# Copyright (c) 2019-present, Blosc Development Team <blosc@blosc.org>
|
|
3
|
+
# All rights reserved.
|
|
4
|
+
#
|
|
5
|
+
# This source code is licensed under a BSD-style license (found in the
|
|
6
|
+
# LICENSE file in the root directory of this source tree)
|
|
7
|
+
#######################################################################
|
|
8
|
+
|
|
9
|
+
# Example for opening and reading a C2Array (remote array)
|
|
10
|
+
|
|
11
|
+
from time import time
|
|
12
|
+
|
|
13
|
+
import numpy as np
|
|
14
|
+
|
|
15
|
+
import blosc2
|
|
16
|
+
|
|
17
|
+
urlbase = "https://cat2.cloud/demo"
|
|
18
|
+
root = "@public"
|
|
19
|
+
|
|
20
|
+
# Access the server
|
|
21
|
+
# urlpath = blosc2.URLPath(f'{root}/examples/ds-1d.b2nd', urlbase)
|
|
22
|
+
# urlpath = blosc2.URLPath(f'{root}/examples/sa-1M.b2nd', urlbase)
|
|
23
|
+
urlpath = blosc2.URLPath(f"{root}/examples/lung-jpeg2000_10x.b2nd", urlbase)
|
|
24
|
+
# urlpath = blosc2.URLPath(f'{root}/examples/uncompressed_lung-jpeg2000_10x.b2nd', urlbase)
|
|
25
|
+
|
|
26
|
+
# Open the remote array
|
|
27
|
+
t0 = time()
|
|
28
|
+
remote_array = blosc2.open(urlpath, mode="r")
|
|
29
|
+
size = np.prod(remote_array.shape) * remote_array.cparams.typesize
|
|
30
|
+
print(f"Time for opening data (HTTP): {time() - t0:.3f}s - file size: {size / 2**10:.2f} KB")
|
|
31
|
+
|
|
32
|
+
# Fetch a slice of the remote array as a numpy array
|
|
33
|
+
t0 = time()
|
|
34
|
+
a = remote_array[5:9]
|
|
35
|
+
print(f"Time for reading data (HTTP): {time() - t0:.3f}s - {a.nbytes / 2**10:.2f} KB")
|
|
36
|
+
|
|
37
|
+
# TODO: Fetch a slice of the remote array as a blosc2.NDArray
|
|
@@ -19,7 +19,7 @@ N = 10_000_000
|
|
|
19
19
|
shape = (N,)
|
|
20
20
|
print(f"*** Creating a blosc2 array with {N:_} elements (shape: {shape}) ***")
|
|
21
21
|
t0 = time()
|
|
22
|
-
a = blosc2.arange(shape=shape, dtype=np.int32)
|
|
22
|
+
a = blosc2.arange(N, shape=shape, dtype=np.int32)
|
|
23
23
|
cratio = a.schunk.nbytes / a.schunk.cbytes
|
|
24
24
|
print(
|
|
25
25
|
f"Time: {time() - t0:.3f} s ({N / (time() - t0) / 1e6:.2f} M/s)"
|
|
@@ -24,11 +24,12 @@ classifiers = [
|
|
|
24
24
|
"Operating System :: Microsoft :: Windows",
|
|
25
25
|
"Operating System :: Unix",
|
|
26
26
|
"Programming Language :: Python :: 3",
|
|
27
|
+
"Programming Language :: Python :: 3.10",
|
|
27
28
|
"Programming Language :: Python :: 3.11",
|
|
28
29
|
"Programming Language :: Python :: 3.12",
|
|
29
30
|
"Programming Language :: Python :: 3.13",
|
|
30
31
|
]
|
|
31
|
-
requires-python = ">=3.
|
|
32
|
+
requires-python = ">=3.10"
|
|
32
33
|
# Follow guidelines from https://scientific-python.org/specs/spec-0000/
|
|
33
34
|
dependencies = [
|
|
34
35
|
"numpy>=1.26",
|
|
@@ -40,7 +41,7 @@ dependencies = [
|
|
|
40
41
|
"py-cpuinfo; platform_machine != 'wasm32'",
|
|
41
42
|
"requests",
|
|
42
43
|
]
|
|
43
|
-
version = "3.3.
|
|
44
|
+
version = "3.3.2"
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
[project.optional-dependencies]
|
|
@@ -248,7 +248,9 @@ from .ndarray import (
|
|
|
248
248
|
full,
|
|
249
249
|
save,
|
|
250
250
|
matmul,
|
|
251
|
+
permute_dims,
|
|
251
252
|
transpose,
|
|
253
|
+
matrix_transpose,
|
|
252
254
|
)
|
|
253
255
|
|
|
254
256
|
from .c2array import c2context, C2Array, URLPath
|
|
@@ -267,7 +269,6 @@ from .proxy import Proxy, ProxySource, ProxyNDSource, ProxyNDField, SimpleProxy,
|
|
|
267
269
|
|
|
268
270
|
from .schunk import SChunk, open
|
|
269
271
|
|
|
270
|
-
|
|
271
272
|
# Registry for postfilters
|
|
272
273
|
postfilter_funcs = {}
|
|
273
274
|
"""
|