Skip to content

Commit 5e7adf6

Browse files
authored
Merge branch 'main' into chore/use-pixi
2 parents 2635279 + 7a6fad3 commit 5e7adf6

24 files changed

+965
-692
lines changed

.github/workflows/ci.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
python-version: ["3.11", "3.12", "3.13"]
16-
# macos-13 is an intel runner, macos-14 is a arm64 runner
17-
platform: [ubuntu-latest, windows-latest, macos-13, macos-14]
16+
# macos-13 is an intel runner, macos-14 is an arm64 runner
17+
platform: [ubuntu-latest, ubuntu-22.04-arm, windows-latest, macos-13, macos-14]
1818

1919
defaults:
2020
run:
@@ -28,7 +28,7 @@ jobs:
2828
fetch-depth: 0 # required for version resolution
2929

3030
- name: Set up Conda
31-
uses: conda-incubator/[email protected].0
31+
uses: conda-incubator/[email protected].1
3232
with:
3333
channels: conda-forge
3434
miniforge-version: latest
@@ -56,8 +56,7 @@ jobs:
5656
# Since zarr v3 requires numpy >= 1.25, on Python 3.11 leave it out
5757
# so we can have some tests of our minimum version of numpy (1.24)
5858
if: matrix.python-version != '3.11'
59-
# TODO: remove --pre option when zarr v3 is out
60-
run: python -m pip install --pre zarr>=3.0.0b2
59+
run: python -m pip install zarr>=3
6160

6261
- name: List installed packages
6362
run: python -m pip list

.github/workflows/wheel.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
# macos-13 is an intel runner, macos-14 is a arm64 runner
17-
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
16+
# macos-13 is an intel runner, macos-14 is an arm64 runner
17+
os: [ubuntu-latest, ubuntu-22.04-arm, windows-latest, macos-13, macos-14]
1818
env:
1919
CIBW_TEST_COMMAND: python -c "import numcodecs"
2020
CIBW_BUILD: "cp311-* cp312-* cp313-*"
@@ -26,7 +26,7 @@ jobs:
2626
with:
2727
submodules: true
2828

29-
- uses: pypa/cibuildwheel@v2.22.0
29+
- uses: pypa/cibuildwheel@v2.23.2
3030

3131
- uses: actions/upload-artifact@v4
3232
with:

.pre-commit-config.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ repos:
1414
- id: debug-statements
1515

1616
- repo: https://github.com/astral-sh/ruff-pre-commit
17-
rev: v0.9.4
17+
rev: v0.11.12
1818
hooks:
1919
- id: ruff
2020
args: ["--fix", "--show-fixes"]
2121
- id: ruff-format
2222

2323
- repo: https://github.com/scientific-python/cookie
24-
rev: 2025.01.22
24+
rev: 2025.05.02
2525
hooks:
2626
- id: sp-repo-review
2727

2828
- repo: https://github.com/pre-commit/mirrors-mypy
29-
rev: v1.14.1
29+
rev: v1.16.0
3030
hooks:
3131
- id: mypy
3232
args: [--config-file, pyproject.toml]
33-
additional_dependencies: [numpy, pytest, crc32c, zfpy, 'zarr>=3.0.0rc1']
33+
additional_dependencies: [numpy, pytest, crc32c, zfpy, 'zarr>=3']

docs/compression/zstd.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ Zstd
77
.. autoattribute:: codec_id
88
.. automethod:: encode
99
.. automethod:: decode
10+
.. note::
11+
If the compressed data does not contain the decompressed size, streaming
12+
decompression will be used.
1013
.. automethod:: get_config
1114
.. automethod:: from_config
1215

docs/contributing.rst

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,11 @@ contributors.
203203
Merging pull requests
204204
~~~~~~~~~~~~~~~~~~~~~
205205

206-
Pull requests submitted by an external contributor should be reviewed and approved by at least
207-
one core developers before being merged. Ideally, pull requests submitted by a core developer
208-
should be reviewed and approved by at least one other core developers before being merged.
206+
Pull requests should be reviewed and approved by at least one core developer
207+
(other than the pull request author) before being merged.
209208

210-
Pull requests should not be merged until all CI checks have passed (Travis, AppVeyor,
211-
Codecov) against code that has had the latest main merged in.
209+
Pull requests should not be merged until all CI checks have passed against code
210+
that has had the latest main merged in.
212211

213212
Compatibility and versioning policies
214213
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -278,6 +277,10 @@ hard-and-fast rules, e.g., it is fine to make a minor release to make a single n
278277
feature available; equally, it is fine to make a minor release that includes a number of
279278
changes.
280279

280+
When making a minor release, open an issue stating your intention so other developers
281+
know that a release is planned. At least a week's notice should be given for other
282+
developers to be aware of and possibly add to the contents of the release.
283+
281284
Major releases obviously need to be given careful consideration, and should be done as
282285
infrequently as possible, as they will break existing code and/or affect data
283286
compatibility in some way.

docs/release.rst

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,86 @@ Release notes
1717
Unreleased
1818
----------
1919

20+
Enhancements
21+
~~~~~~~~~~~~
22+
23+
Improvements
24+
~~~~~~~~~~~~
25+
26+
* In ``vlen``, define and use ``const`` ``HEADER_LENGTH``.
27+
By :user:`John Kirkham <jakirkham>`, :issue:`723`
28+
* All codecs are now pickleable.
29+
By :user:`Tom Nicholas <TomNicholas>`, :issue:`744`
30+
31+
Fixes
32+
~~~~~
33+
34+
* Fix ``const`` discard warnings in ``fletcher32``.
35+
By :user:`John Kirkham <jakirkham>`, :issue:`728`
36+
37+
* Update ``license*`` metadata and include third-party licenses.
38+
By :user:`John Kirkham <jakirkham>`, :issue:`729`
39+
40+
* Add ``#ifndef`` guard around ``PyBytes_RESIZE``.
41+
By :user:`John Kirkham <jakirkham>`, :issue:`732`
42+
43+
* Remove ``typesize`` from ``Blosc.get_config`` output
44+
By :user:`Ilan Gold <ilan-gold>`
45+
46+
Maintenance
47+
~~~~~~~~~~~
48+
49+
50+
0.16.0
51+
------
52+
53+
Enhancements
54+
~~~~~~~~~~~~
55+
56+
* Add ``typesize`` argument to ``Blosc`` to allow for buffers that are passed to ``encode``
57+
use that information. zarr v3 currently has its Blosc codec as bytes-to-bytes but does retain
58+
the size information so using it here allows for massive compression ratio gains.
59+
By :user:`Ilan Gold <ilan-gold>`
60+
* Add support for the Linux aarch64 architecture,
61+
By :user:`Agriya Khetarpal <agriyakhetarpal>`, :issue:`288`.
62+
* Preallocate output buffers and resize directly as needed.
63+
By :user:`John Kirkham <jakirkham>`, :issue:`656`
64+
* ``Checksum32`` is now an abstract base clase, with ``checksum()`` as an abstract method.
65+
This helps ensure that any subclasses implement the ``checksum()`` method.
66+
:issue:`711`
67+
68+
Removals
69+
~~~~~~~~
70+
71+
The following ``blosc`` funcitons are removed, with no replacement.
72+
This is because they were not intended to be public API.
73+
74+
- ``numcodecs.blosc.init``
75+
- ``numcodecs.blosc.destroy``
76+
- ``numcodecs.blosc.compname_to_compcode``
77+
- ``numcodecs.blosc.cbuffer_sizes``
78+
- ``numcodecs.blosc.cbuffer_metainfo``
79+
80+
In addition, ``numcodecs.blosc.decompress_partial`` is removed as
81+
has always been experimental and there is no equivalent in the official
82+
blsoc Python package.
83+
By :user:`David Stansby <dstansby>`, :issue:`712`
84+
85+
Maintenance
86+
~~~~~~~~~~~
87+
* Replace internal ``Buffer`` usage with ``memoryview``\ s.
88+
By :user:`John Kirkham <jakirkham>`, :issue:`656`
89+
* Bump the minimum macOS deployment target for x86_64 to 10.13.
90+
By :user:`Agriya Khetarpal <agriyakhetarpal>`, :issue:`288`.
91+
92+
93+
0.15.1
94+
------
95+
2096
Improvements
2197
~~~~~~~~~~~~
98+
* Add streaming decompression for ZSTD (:issue:`699`)
99+
By :user:`Mark Kittisopikul <mkitti>`.
22100
* Raise a custom `UnknownCodecError` when trying to retrieve an unavailable codec.
23101
By :user:`Cas Wognum <cwognum>`.
24102

@@ -40,7 +118,7 @@ Breaking changes
40118

41119
Deprecations
42120
~~~~~~~~~~~~
43-
The following ``blosc`` funcitons are deprecated, with no replacement.
121+
The following ``blosc`` functions are deprecated, with no replacement.
44122
This is because they are not intended to be public API.
45123

46124
- ``numcodecs.blosc.init``
@@ -52,7 +130,7 @@ This is because they are not intended to be public API.
52130
In addition, ``numcodecs.blosc.decompress_partial`` is deprecated as
53131
has always been experimental and there is no equivalent in the official
54132
blsoc Python package.
55-
By :user:`David Stansby <dstansby>`, :issue`619`
133+
By :user:`David Stansby <dstansby>`, :issue:`619`
56134

57135
Fixes
58136
~~~~~

numcodecs/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
ncores = 1
5252
blosc._init()
5353
blosc.set_nthreads(min(8, ncores))
54-
atexit.register(blosc.destroy)
54+
atexit.register(blosc._destroy)
5555

5656
from numcodecs import zstd as zstd
5757
from numcodecs.zstd import Zstd

0 commit comments

Comments
 (0)