tag:github.com,2008:https://github.com/Blosc/python-blosc2/releasesRelease notes from python-blosc22026-03-03T10:27:35Ztag:github.com,2008:Repository/352578424/v4.1.22026-03-03T11:09:23ZBlosc2 v4.1.2<p>Updated <code>c-blosc2</code> for memory leak and other bug fixes</p>lshaw8317tag:github.com,2008:Repository/352578424/v4.1.12026-03-02T15:03:51ZBlosc2 v4.1.1<p>Update <code>miniexpr</code> version to fix bug on Ubuntu-arm64.</p>lshaw8317tag:github.com,2008:Repository/352578424/v4.1.02026-02-28T07:13:19ZBlosc2 v4.1.0<ul>
<li>Add DSL kernel functionality for faster, compiled, user-defined functions which broadly respect python syntax and implement the <code>LazyArray</code> interface. See the introductory tutorial at: <a href="https://blosc.org/python-blosc2/getting_started/tutorials/03.lazyarray-udf-kernels.html" rel="nofollow">https://blosc.org/python-blosc2/getting_started/tutorials/03.lazyarray-udf-kernels.html</a></li>
<li>Add read-only mmap support for store containers:<br>
<code>DictStore</code>, <code>TreeStore</code>, and <code>EmbedStore</code> now accept <code>mmap_mode="r"</code><br>
when opened with <code>mode="r"</code> (including via <code>blosc2.open</code> for <code>.b2d</code>,<br>
<code>.b2z</code>, and <code>.b2e</code>).</li>
<li>New .meta entry for store containers, allowing better store recognition at <code>blosc2.open()</code> time. Fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3727264119" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/546" data-hovercard-type="issue" data-hovercard-url="/Blosc/python-blosc2/issues/546/hovercard" href="https://github.com/Blosc/python-blosc2/issues/546">#546</a>.</li>
<li>Add <code>cumulative_sum</code> and <code>cumulative_prod</code> functions for Array API compliance.</li>
<li>Add Unicode string arrays, support comparison operations with them, and optimised compression path.</li>
<li>Add <code>endswith</code> and <code>startswith</code> and extend <code>contains</code> to support strings and offer <code>miniexpr</code> multithreaded computation when possible.</li>
<li>Use DSL kernels to accelerate <code>arange</code>/<code>linspace</code> constructors by 6-10x.</li>
<li>Improve documentation for <code>filters</code> and <code>filters_meta</code>.</li>
<li>Fix edge case issues with <code>resize</code> and <code>constructors</code> so that <code>chunks</code> may be set independently of shape, and arrays may be extended from empty consistently.</li>
<li>Continued work on <code>miniexpr</code> integration, interface, and support.</li>
<li>Ruff fixes and implementation of PEP recommendations.</li>
</ul>lshaw8317tag:github.com,2008:Repository/352578424/v4.0.02026-01-29T14:18:27ZBlosc2 v4.0.0<h2>What's Changed</h2>
<p>The main change is hyperfast fully multithreaded computation with miniexpr (final PR * Miniexpr for Windows by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/FrancescAlted/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/FrancescAlted">@FrancescAlted</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3848316006" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/565" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/565/hovercard" href="https://github.com/Blosc/python-blosc2/pull/565">#565</a>).<br>
In addition, the internal wheel structure has been changed to implement PEP 427 (<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837868703" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/560" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/560/hovercard" href="https://github.com/Blosc/python-blosc2/pull/560">#560</a>). In addition:</p>
<ul>
<li>feat: add support for .b2z, .b2d, .b2e files and update related tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bossbeagle1509/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bossbeagle1509">@bossbeagle1509</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3700582827" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/541" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/541/hovercard" href="https://github.com/Blosc/python-blosc2/pull/541">#541</a></li>
<li>Add none indexing for lazyudf/lazyarray by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3710771652" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/545" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/545/hovercard" href="https://github.com/Blosc/python-blosc2/pull/545">#545</a></li>
<li>Respect NUMEXPR_MAX_THREADS when setting numexpr thread count by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/skmendez/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/skmendez">@skmendez</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3857300759" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/567" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/567/hovercard" href="https://github.com/Blosc/python-blosc2/pull/567">#567</a></li>
<li>Add openzl_plugin support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3834022589" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/559" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/559/hovercard" href="https://github.com/Blosc/python-blosc2/pull/559">#559</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/Blosc/python-blosc2/compare/v3.12.2...v4.0.0"><tt>v3.12.2...v4.0.0</tt></a></p>lshaw8317tag:github.com,2008:Repository/352578424/v4.0.0-b12026-01-22T15:43:49ZBlosc2 v4.0.0-b1<p>This is a beta version with hyperfast multithreaded expression calculatio via the incorporation of miniexpr; as well as better support for plugins (stay tuned for blosc2_openzl plugin!),</p>
<h2>What's Changed</h2>
<ul>
<li>Update pre-commit hooks by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/pre-commit-ci/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pre-commit-ci">@pre-commit-ci</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3683081007" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/537" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/537/hovercard" href="https://github.com/Blosc/python-blosc2/pull/537">#537</a></li>
<li>Fix fancy index item bug by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ykcUconn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ykcUconn">@ykcUconn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3706892888" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/543" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/543/hovercard" href="https://github.com/Blosc/python-blosc2/pull/543">#543</a></li>
<li>feat: add support for .b2z, .b2d, .b2e files and update related tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bossbeagle1509/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bossbeagle1509">@bossbeagle1509</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3700582827" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/541" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/541/hovercard" href="https://github.com/Blosc/python-blosc2/pull/541">#541</a></li>
<li>Add none indexing for lazyudf/lazyarray by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3710771652" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/545" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/545/hovercard" href="https://github.com/Blosc/python-blosc2/pull/545">#545</a></li>
<li>Bump actions/download-artifact from 6 to 7 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3728403216" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/547" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/547/hovercard" href="https://github.com/Blosc/python-blosc2/pull/547">#547</a></li>
<li>Bump actions/upload-artifact from 5 to 6 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3728403387" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/548" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/548/hovercard" href="https://github.com/Blosc/python-blosc2/pull/548">#548</a></li>
<li>Update pre-commit hooks by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/pre-commit-ci/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pre-commit-ci">@pre-commit-ci</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3782964627" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/550" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/550/hovercard" href="https://github.com/Blosc/python-blosc2/pull/550">#550</a></li>
<li>PEP 639 compliance by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DimitriPapadopoulos/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DimitriPapadopoulos">@DimitriPapadopoulos</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3797168881" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/552" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/552/hovercard" href="https://github.com/Blosc/python-blosc2/pull/552">#552</a></li>
<li>Multi-threaded reductions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/FrancescAlted/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/FrancescAlted">@FrancescAlted</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3779213114" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/549" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/549/hovercard" href="https://github.com/Blosc/python-blosc2/pull/549">#549</a></li>
<li>Implement PEP recommendations by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837868703" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/560" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/560/hovercard" href="https://github.com/Blosc/python-blosc2/pull/560">#560</a></li>
<li>Add openzl_plugin support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3834022589" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/559" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/559/hovercard" href="https://github.com/Blosc/python-blosc2/pull/559">#559</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ykcUconn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ykcUconn">@ykcUconn</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3706892888" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/543" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/543/hovercard" href="https://github.com/Blosc/python-blosc2/pull/543">#543</a></li>
<li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bossbeagle1509/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bossbeagle1509">@bossbeagle1509</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3700582827" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/541" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/541/hovercard" href="https://github.com/Blosc/python-blosc2/pull/541">#541</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/Blosc/python-blosc2/compare/v3.12.2...v4.0.0-b1"><tt>v3.12.2...v4.0.0-b1</tt></a></p>lshaw8317tag:github.com,2008:Repository/352578424/v3.12.22025-12-04T11:46:45ZBlosc2 v3.12.2<h2>What's Changed</h2>
<ul>
<li>Hotfix to change WASM wheel hosting to separate repo</li>
</ul>lshaw8317tag:github.com,2008:Repository/352578424/v3.12.12025-12-03T17:10:36ZBlosc2 v3.12.1<h2>What's Changed</h2>
<ul>
<li>Allow saving of numba-decorated lazyudfs by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lshaw8317/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lshaw8317">@lshaw8317</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3689499720" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/538" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/538/hovercard" href="https://github.com/Blosc/python-blosc2/pull/538">#538</a></li>
<li>Automate upload of WASM wheels to GitHub pages</li>
</ul>lshaw8317tag:github.com,2008:Repository/352578424/v3.12.02025-12-02T16:11:45ZBlosc2 v3.12.0<h2>What's Changed</h2>
<ul>
<li><code>LazyUDF</code> objects can now be saved to disk</li>
<li>Calls to <code>__matmul__</code> NumPy ufunc now passed to <code>blosc2.matmul</code></li>
<li>Streamlined <code>LazyUDF.compute</code> is now much more robust and functional</li>
<li>The <code>get_chunk</code> method for <code>LazyExpr</code> is more efficient and enabled for general <code>LazyArray</code> objects</li>
<li><code>LazyExpr</code> calculation can now be done even with expressions with pure scalar operands, e.g <code>10 * 3 +1.</code>.</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/Blosc/python-blosc2/compare/v3.11.1...v3.12.0"><tt>v3.11.1...v3.12.0</tt></a></p>lshaw8317tag:github.com,2008:Repository/352578424/v3.11.12025-11-16T16:40:30ZBlosc2 3.11.1<h2>What's Changed</h2>
<p>✅ Change the NDArray.size to return the number of elements in array, instead of the size of the array in bytes<br>
✅ Bug fixes for lazy expressions to allow a wider range of functionality<br>
✅ Small bug fix for slice indexing with step larger than chunksize<br>
✅ Tweak automatic chunk sizing of results for certain (e.g. linalg) operations to enhance performance<br>
✅ Various cosmetic fixes and streamlining (thanks to the indefatigable <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DimitriPapadopoulos/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DimitriPapadopoulos">@DimitriPapadopoulos</a>)</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/Blosc/python-blosc2/compare/v3.11.0...v3.11.1"><tt>v3.11.0...v3.11.1</tt></a></p>lshaw8317tag:github.com,2008:Repository/352578424/v3.11.02025-10-29T08:18:22ZBlosc2 v3.11.0<h2>What's Changed</h2>
<ul>
<li>Small optimisation for chunking in lazy expressions</li>
<li>Extend Blosc2 computation machinery to accept general array inputs (PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3520958660" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/510" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/510/hovercard" href="https://github.com/Blosc/python-blosc2/pull/510">#510</a>)</li>
<li>Refactoring and streamlining of get/setitem for non-unit steps (PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3551964089" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/513" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/513/hovercard" href="https://github.com/Blosc/python-blosc2/pull/513">#513</a>)</li>
<li>Remote array testing now performed with <code>cat2cloud</code> (PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3537497172" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/511" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/511/hovercard" href="https://github.com/Blosc/python-blosc2/pull/511">#511</a>)</li>
<li>Added argmax/argmin functions (PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3551965079" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/514" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/514/hovercard" href="https://github.com/Blosc/python-blosc2/pull/514">#514</a>)</li>
<li>Change <code>squeeze</code> to return view (rather than modify array in-place) (PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3561293693" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/518" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/518/hovercard" href="https://github.com/Blosc/python-blosc2/pull/518">#518</a>)</li>
<li>Modify <code>setitem</code> to load general array inputs into NDArrays (PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3561057819" data-permission-text="Title is private" data-url="https://github.com/Blosc/python-blosc2/issues/517" data-hovercard-type="pull_request" data-hovercard-url="/Blosc/python-blosc2/pull/517/hovercard" href="https://github.com/Blosc/python-blosc2/pull/517">#517</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/Blosc/python-blosc2/compare/v3.10.2...v3.11.0"><tt>v3.10.2...v3.11.0</tt></a></p>lshaw8317