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.
Files changed (257) hide show
  1. {blosc2-3.3.0 → blosc2-3.3.2}/ANNOUNCE.rst +6 -7
  2. {blosc2-3.3.0 → blosc2-3.3.2}/PKG-INFO +3 -2
  3. {blosc2-3.3.0 → blosc2-3.3.2}/RELEASE_NOTES.md +36 -0
  4. {blosc2-3.3.0 → blosc2-3.3.2}/doc/python-blosc2.rst +1 -1
  5. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/linear_algebra.rst +2 -0
  6. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/ndarray.rst +1 -0
  7. blosc2-3.3.2/examples/c2array-get-slice.py +37 -0
  8. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/arange-constructor.py +1 -1
  9. {blosc2-3.3.0 → blosc2-3.3.2}/pyproject.toml +3 -2
  10. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/__init__.py +2 -1
  11. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/blosc2_ext.pyx +106 -87
  12. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/core.py +8 -3
  13. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/lazyexpr.py +32 -12
  14. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/ndarray.py +172 -35
  15. blosc2-3.3.2/src/blosc2/version.py +1 -0
  16. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lazyexpr.py +89 -0
  17. blosc2-3.3.2/tests/ndarray/test_transpose.py +235 -0
  18. blosc2-3.3.0/src/blosc2/version.py +0 -1
  19. blosc2-3.3.0/tests/ndarray/test_transpose.py +0 -104
  20. {blosc2-3.3.0 → blosc2-3.3.2}/.gitignore +0 -0
  21. {blosc2-3.3.0 → blosc2-3.3.2}/.guix/modules/python-blosc2-package.scm +0 -0
  22. {blosc2-3.3.0 → blosc2-3.3.2}/.guix-channel +0 -0
  23. {blosc2-3.3.0 → blosc2-3.3.2}/.pre-commit-config.yaml +0 -0
  24. {blosc2-3.3.0 → blosc2-3.3.2}/CMakeLists.txt +0 -0
  25. {blosc2-3.3.0 → blosc2-3.3.2}/CONTRIBUTING.rst +0 -0
  26. {blosc2-3.3.0 → blosc2-3.3.2}/LICENSE.txt +0 -0
  27. {blosc2-3.3.0 → blosc2-3.3.2}/README.rst +0 -0
  28. {blosc2-3.3.0 → blosc2-3.3.2}/README_DEVELOPERS.md +0 -0
  29. {blosc2-3.3.0 → blosc2-3.3.2}/RELEASING.rst +0 -0
  30. {blosc2-3.3.0 → blosc2-3.3.2}/code_of_conduct.md +0 -0
  31. {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-favicon_32x32.png +0 -0
  32. {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-favicon_64x64.png +0 -0
  33. {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-logo_128.png +0 -0
  34. {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/blosc-logo_256.png +0 -0
  35. {blosc2-3.3.0 → blosc2-3.3.2}/doc/_static/css/custom.css +0 -0
  36. {blosc2-3.3.0 → blosc2-3.3.2}/doc/conf.py +0 -0
  37. {blosc2-3.3.0 → blosc2-3.3.2}/doc/development/code-of-conduct.rst +0 -0
  38. {blosc2-3.3.0 → blosc2-3.3.2}/doc/development/contributing.rst +0 -0
  39. {blosc2-3.3.0 → blosc2-3.3.2}/doc/development/index.rst +0 -0
  40. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/index.rst +0 -0
  41. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/installation.rst +0 -0
  42. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/overview.rst +0 -0
  43. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/01.ndarray-basics.ipynb +0 -0
  44. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/02.lazyarray-expressions.ipynb +0 -0
  45. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/03.lazyarray-udf.ipynb +0 -0
  46. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/04.reductions.ipynb +0 -0
  47. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/05.persistent-reductions.ipynb +0 -0
  48. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/06.remote_proxy.ipynb +0 -0
  49. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/07.schunk-basics.ipynb +0 -0
  50. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/08.schunk-slicing_and_beyond.ipynb +0 -0
  51. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/10.ucodecs-ufilters.ipynb +0 -0
  52. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/11.prefilters.ipynb +0 -0
  53. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/12.postfilters.ipynb +0 -0
  54. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/blosc2-pipeline.png +0 -0
  55. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/blosc2-pipeline.svg +0 -0
  56. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/lazyexpr-broadcast.png +0 -0
  57. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/3D-cube-plane.png +0 -0
  58. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/3D-cube.png +0 -0
  59. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/memory-access-2D-x.png +0 -0
  60. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/reductions/memory-access-2D-y.png +0 -0
  61. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/remote_proxy.png +0 -0
  62. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/backward.png +0 -0
  63. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/backward.svg +0 -0
  64. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder.png +0 -0
  65. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder.svg +0 -0
  66. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder2.png +0 -0
  67. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/decoder2.svg +0 -0
  68. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder.png +0 -0
  69. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder.svg +0 -0
  70. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder2.png +0 -0
  71. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/encoder2.svg +0 -0
  72. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/forward.png +0 -0
  73. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials/images/ucodecs-filters/forward.svg +0 -0
  74. {blosc2-3.3.0 → blosc2-3.3.2}/doc/getting_started/tutorials.rst +0 -0
  75. {blosc2-3.3.0 → blosc2-3.3.2}/doc/index.rst +0 -0
  76. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/array_operations.rst +0 -0
  77. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__getitem__.rst +0 -0
  78. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__init__.rst +0 -0
  79. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__len__.rst +0 -0
  80. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.__setitem__.rst +0 -0
  81. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.append_data.rst +0 -0
  82. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.decompress_chunk.rst +0 -0
  83. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.delete_chunk.rst +0 -0
  84. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.fill_special.rst +0 -0
  85. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.filler.rst +0 -0
  86. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.get_chunk.rst +0 -0
  87. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.get_slice.rst +0 -0
  88. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.insert_chunk.rst +0 -0
  89. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.insert_data.rst +0 -0
  90. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.iterchunks.rst +0 -0
  91. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.iterchunks_info.rst +0 -0
  92. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.postfilter.rst +0 -0
  93. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.prefilter.rst +0 -0
  94. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.remove_postfilter.rst +0 -0
  95. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.remove_prefilter.rst +0 -0
  96. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.to_cframe.rst +0 -0
  97. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.update_chunk.rst +0 -0
  98. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/autofiles/schunk/blosc2.schunk.SChunk.update_data.rst +0 -0
  99. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/c2array.rst +0 -0
  100. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/classes.rst +0 -0
  101. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/decorators.rst +0 -0
  102. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/index.rst +0 -0
  103. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/lazy_functions.rst +0 -0
  104. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/lazyarray.rst +0 -0
  105. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/low_level.rst +0 -0
  106. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/ndfield.rst +0 -0
  107. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/proxy.rst +0 -0
  108. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/proxyndsource.rst +0 -0
  109. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/proxysource.rst +0 -0
  110. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/reduction_functions.rst +0 -0
  111. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/save_load.rst +0 -0
  112. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/schunk.rst +0 -0
  113. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/storage.rst +0 -0
  114. {blosc2-3.3.0 → blosc2-3.3.2}/doc/reference/utilities.rst +0 -0
  115. {blosc2-3.3.0 → blosc2-3.3.2}/doc/release_notes/index.md +0 -0
  116. {blosc2-3.3.0 → blosc2-3.3.2}/examples/btune.py +0 -0
  117. {blosc2-3.3.0 → blosc2-3.3.2}/examples/compress2_decompress2.py +0 -0
  118. {blosc2-3.3.0 → blosc2-3.3.2}/examples/compress_decompress.py +0 -0
  119. {blosc2-3.3.0 → blosc2-3.3.2}/examples/filler.py +0 -0
  120. {blosc2-3.3.0 → blosc2-3.3.2}/examples/gil.py +0 -0
  121. {blosc2-3.3.0 → blosc2-3.3.2}/examples/mmap-rw.py +0 -0
  122. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/asarray_.py +0 -0
  123. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/broadcast_expr.py +0 -0
  124. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/buffer.py +0 -0
  125. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/bytedelta_filter.py +0 -0
  126. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/c2array_expr.py +0 -0
  127. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_expr.py +0 -0
  128. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_fields.py +0 -0
  129. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_udf_numba.py +0 -0
  130. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/compute_where.py +0 -0
  131. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/copy_.py +0 -0
  132. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/empty_.py +0 -0
  133. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/eye-constructor.py +0 -0
  134. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/filter_sort_fields.py +0 -0
  135. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/formats.py +0 -0
  136. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/fromiter-constructor.py +0 -0
  137. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/general_expressions.py +0 -0
  138. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/getitem.py +0 -0
  139. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/iterchunks_info.py +0 -0
  140. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/jit-expr.py +0 -0
  141. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/jit-numpy-funcs.py +0 -0
  142. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/jit-reduc.py +0 -0
  143. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/linspace-constructor.py +0 -0
  144. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/lists-vs-bools-idx.py +0 -0
  145. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/meta.py +0 -0
  146. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/ndarray_copy.py +0 -0
  147. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/ndmean.py +0 -0
  148. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/persistency.py +0 -0
  149. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/proxy-carray.py +0 -0
  150. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/proxy-ndarray.py +0 -0
  151. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_and_enlarge.py +0 -0
  152. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_expr.py +0 -0
  153. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_expr_save.py +0 -0
  154. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/reduce_string_expr.py +0 -0
  155. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/resize_.py +0 -0
  156. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/work_with_numpy.py +0 -0
  157. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ndarray/zfp_codec.py +0 -0
  158. {blosc2-3.3.0 → blosc2-3.3.2}/examples/pack_array.py +0 -0
  159. {blosc2-3.3.0 → blosc2-3.3.2}/examples/pack_tensor.py +0 -0
  160. {blosc2-3.3.0 → blosc2-3.3.2}/examples/postfilter1.py +0 -0
  161. {blosc2-3.3.0 → blosc2-3.3.2}/examples/postfilter2.py +0 -0
  162. {blosc2-3.3.0 → blosc2-3.3.2}/examples/postfilter3.py +0 -0
  163. {blosc2-3.3.0 → blosc2-3.3.2}/examples/prefilter.py +0 -0
  164. {blosc2-3.3.0 → blosc2-3.3.2}/examples/save_tensor.py +0 -0
  165. {blosc2-3.3.0 → blosc2-3.3.2}/examples/schunk.py +0 -0
  166. {blosc2-3.3.0 → blosc2-3.3.2}/examples/schunk_roundtrip.py +0 -0
  167. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ucodecs.py +0 -0
  168. {blosc2-3.3.0 → blosc2-3.3.2}/examples/ufilters.py +0 -0
  169. {blosc2-3.3.0 → blosc2-3.3.2}/examples/vlmeta.py +0 -0
  170. {blosc2-3.3.0 → blosc2-3.3.2}/generate_version.py +0 -0
  171. {blosc2-3.3.0 → blosc2-3.3.2}/guix.scm +0 -0
  172. {blosc2-3.3.0 → blosc2-3.3.2}/images/Complete-Write-Read-B2ND.png +0 -0
  173. {blosc2-3.3.0 → blosc2-3.3.2}/images/M1-i386-vs-arm64-pack.png +0 -0
  174. {blosc2-3.3.0 → blosc2-3.3.2}/images/M1-i386-vs-arm64-unpack.png +0 -0
  175. {blosc2-3.3.0 → blosc2-3.3.2}/images/Read-Partial-Slices-B2ND.png +0 -0
  176. {blosc2-3.3.0 → blosc2-3.3.2}/images/b2nd-2level-parts.png +0 -0
  177. {blosc2-3.3.0 → blosc2-3.3.2}/images/eval-expr-full-mem-M2.png +0 -0
  178. {blosc2-3.3.0 → blosc2-3.3.2}/images/eval-expr-scarce-mem-M2.png +0 -0
  179. {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-dask-large.png +0 -0
  180. {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-dask-small.png +0 -0
  181. {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-expr-large.png +0 -0
  182. {blosc2-3.3.0 → blosc2-3.3.2}/images/lazyarray-expr.png +0 -0
  183. {blosc2-3.3.0 → blosc2-3.3.2}/images/linspace-compress.png +0 -0
  184. {blosc2-3.3.0 → blosc2-3.3.2}/images/linspace-decompress.png +0 -0
  185. {blosc2-3.3.0 → blosc2-3.3.2}/images/pack-array-cratios.png +0 -0
  186. {blosc2-3.3.0 → blosc2-3.3.2}/images/reduc-float64-amd.png +0 -0
  187. {blosc2-3.3.0 → blosc2-3.3.2}/images/reduc-float64-log-amd.png +0 -0
  188. {blosc2-3.3.0 → blosc2-3.3.2}/pytest.ini +0 -0
  189. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/c2array.py +0 -0
  190. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/helpers.py +0 -0
  191. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/info.py +0 -0
  192. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/proxy.py +0 -0
  193. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/schunk.py +0 -0
  194. {blosc2-3.3.0 → blosc2-3.3.2}/src/blosc2/storage.py +0 -0
  195. {blosc2-3.3.0 → blosc2-3.3.2}/tests/conftest.py +0 -0
  196. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_auto_parts.py +0 -0
  197. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_buffer.py +0 -0
  198. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_c2array_expr.py +0 -0
  199. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_c2array_reductions.py +0 -0
  200. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_c2array_udf.py +0 -0
  201. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_copy.py +0 -0
  202. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_empty.py +0 -0
  203. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_evaluate.py +0 -0
  204. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_full.py +0 -0
  205. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_get_slice_nchunks.py +0 -0
  206. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_getitem.py +0 -0
  207. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_iterchunks_info.py +0 -0
  208. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_jit.py +0 -0
  209. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lazyexpr_fields.py +0 -0
  210. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lazyudf.py +0 -0
  211. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_lossy.py +0 -0
  212. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_matmul.py +0 -0
  213. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_metalayers.py +0 -0
  214. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_mode.py +0 -0
  215. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_nans.py +0 -0
  216. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_ndarray.py +0 -0
  217. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_numpy.py +0 -0
  218. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_persistency.py +0 -0
  219. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_proxy.py +0 -0
  220. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_proxy_c2array.py +0 -0
  221. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_proxy_expr.py +0 -0
  222. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_reductions.py +0 -0
  223. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_resize.py +0 -0
  224. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_setitem.py +0 -0
  225. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_slice.py +0 -0
  226. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_squeeze.py +0 -0
  227. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_struct_dtype.py +0 -0
  228. {blosc2-3.3.0 → blosc2-3.3.2}/tests/ndarray/test_zeros.py +0 -0
  229. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_bytes_array.py +0 -0
  230. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_comp_info.py +0 -0
  231. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_compress2.py +0 -0
  232. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_compression_parameters.py +0 -0
  233. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_compressors.py +0 -0
  234. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_decompress.py +0 -0
  235. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_iterchunks.py +0 -0
  236. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_mmap.py +0 -0
  237. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_open.py +0 -0
  238. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_open_c2array.py +0 -0
  239. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_pathlib.py +0 -0
  240. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_postfilters.py +0 -0
  241. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_prefilters.py +0 -0
  242. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_proxy_schunk.py +0 -0
  243. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_python_blosc.py +0 -0
  244. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk.py +0 -0
  245. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_constructor.py +0 -0
  246. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_delete.py +0 -0
  247. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_get_slice.py +0 -0
  248. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_get_slice_nchunks.py +0 -0
  249. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_insert.py +0 -0
  250. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_set_slice.py +0 -0
  251. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_schunk_update.py +0 -0
  252. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_storage.py +0 -0
  253. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_tensor.py +0 -0
  254. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_ucodecs.py +0 -0
  255. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_ufilters.py +0 -0
  256. {blosc2-3.3.0 → blosc2-3.3.2}/tests/test_vlmeta.py +0 -0
  257. {blosc2-3.3.0 → blosc2-3.3.2}/update_version.py +0 -0
@@ -1,12 +1,11 @@
1
- Announcing Python-Blosc2 3.3.0
1
+ Announcing Python-Blosc2 3.3.2
2
2
  ==============================
3
3
 
4
- We are introducing a new blosc2.transpose() function for natively transposing
5
- 2D NDArray instances and a fast path for NDArray.slice() that delivers up to
6
- 40x speedup when slices align with underlying chunks. Documentation has also
7
- been improved with several edits throughout.
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.0
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.11
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.2.1 released on 2025-04-27!</a>
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>
@@ -13,3 +13,5 @@ The next functions can be used for computing linear algebra operations with :ref
13
13
 
14
14
  matmul
15
15
  transpose
16
+ matrix_transpose
17
+ permute_dims
@@ -40,6 +40,7 @@ Attributes
40
40
  .. autosummary::
41
41
  :toctree: autofiles/ndarray
42
42
 
43
+ T
43
44
  ndim
44
45
  shape
45
46
  ext_shape
@@ -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.11"
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.0"
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
  """