Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
86f5ce4
Changelog for 0.14.1 (#650)
dstansby Nov 21, 2024
994eb54
chore: update pre-commit hooks (#660)
pre-commit-ci[bot] Nov 29, 2024
91d9f3a
Bump pypa/cibuildwheel from 2.21.3 to 2.22.0 (#659)
dependabot[bot] Nov 29, 2024
8c7c043
Fail CI if codecov doesn't upload (#638)
dstansby Nov 29, 2024
1855f0c
Enforce ruff/flake8-comprehensions rules (C4) (#605)
DimitriPapadopoulos Nov 29, 2024
f43449b
Imported name is not used anywhere in the module (#662)
DimitriPapadopoulos Nov 29, 2024
d8a0a55
Adds `astype` config for Delta in Zarr 3 wrapper (#664)
normanrz Dec 2, 2024
3c15300
chore: update pre-commit hooks (#665)
pre-commit-ci[bot] Dec 3, 2024
9bdbaf0
Only suppress imports of optional external dependencies (#550)
dstansby Dec 3, 2024
4b95d66
Support `pcodec` v0.3 (#639)
slevang Dec 3, 2024
e181dd8
chore: update pre-commit hooks (#667)
pre-commit-ci[bot] Dec 17, 2024
bfa1c0d
chore: update pre-commit hooks (#673)
pre-commit-ci[bot] Dec 24, 2024
9cd6bde
Last batch of ruff rules (#658)
DimitriPapadopoulos Dec 28, 2024
095de5c
Improve pre-commit configuration (#668)
DimitriPapadopoulos Dec 28, 2024
7cdffa1
Update pyproject.toml - zfpy Versioning (#671)
me-her Jan 4, 2025
c5cf0c5
Update numcodecs tests and docs for zarr-python 3.0 (#675)
normanrz Jan 4, 2025
3a060f4
Deprecate blosc helper functions (#619)
dstansby Jan 4, 2025
6c0ea0f
Simplify conda use in tests (#674)
dstansby Jan 4, 2025
5502dc8
Test on zfpy again (#678)
dstansby Jan 8, 2025
f005306
Skip vlen bytes encode none test (#690)
dstansby Jan 17, 2025
d8d53bb
Revert change to delta filter (#677)
dstansby Jan 17, 2025
32545ec
Cleanup `PCodec` soft dependency (#647)
jakirkham Jan 17, 2025
7ed1ace
Update release notes for 0.15.0 (#691)
dstansby Jan 17, 2025
30155c7
Remove id from zarr3 config serialization (#685)
normanrz Jan 17, 2025
ee9a110
Enable some stricter typing rules (#679)
dstansby Jan 17, 2025
0162bb8
Apply ruff preview rule RUF046 (#687)
DimitriPapadopoulos Jan 17, 2025
bd517ab
chore: update pre-commit hooks (#682)
pre-commit-ci[bot] Jan 17, 2025
6d090a3
Minor UX improvement: Add the `UnknownCodecError`. (#689)
cwognum Jan 17, 2025
8d15c02
Update release notes post 0.15.0 (#692)
dstansby Jan 21, 2025
b8e40f7
chore: update pre-commit hooks (#696)
pre-commit-ci[bot] Feb 7, 2025
8a0bd3b
Upgrade ruff to 0.9.1 (#688)
DimitriPapadopoulos Feb 7, 2025
3cf8ab1
Don't overwrite codec config values when set. (#700)
dcherian Feb 8, 2025
a2bdbe5
Only skip failing test on macOS (#709)
dstansby Feb 14, 2025
0ad21f7
Build for Linux AArch64 and other miscellaneous cleanups (#710)
agriyakhetarpal Mar 3, 2025
0417d64
Bump conda-incubator/setup-miniconda from 3.1.0 to 3.1.1 (#695)
dependabot[bot] Mar 3, 2025
33eb139
chore: update pre-commit hooks (#715)
pre-commit-ci[bot] Mar 3, 2025
8168e15
Bump pypa/cibuildwheel from 2.22.0 to 2.23.0 (#714)
dependabot[bot] Mar 4, 2025
3c933cf
(feat): `typesize` declared with constructor for `Blosc` (#713)
ilan-gold Mar 4, 2025
27aeda2
Switch `Buffer`s to `memoryview`s & remove extra copies/allocations (…
jakirkham Mar 30, 2025
56abf3a
Define a footer length for fletcher32 (#718)
jakirkham Mar 31, 2025
725cf25
Make Checksum32 an ABC (#711)
dstansby Apr 3, 2025
b588f0f
Remove deprecated blosc code (#712)
dstansby Apr 7, 2025
197a03d
Update changelog for 0.16 (#720)
dstansby Apr 7, 2025
96086c3
Fix `const` discard warnings in `fletcher32` (#728)
jakirkham Apr 7, 2025
169db1b
In `vlen`, define and use `const` `HEADER_LENGTH` (#723)
jakirkham Apr 7, 2025
1fe396a
chore: update pre-commit hooks (#722)
pre-commit-ci[bot] Apr 8, 2025
4f453e5
Update ``license*`` metadata and include third-party licenses (#729)
jakirkham Apr 8, 2025
933d901
Bump pypa/cibuildwheel from 2.23.0 to 2.23.2 (#719)
dependabot[bot] Apr 8, 2025
58bc9c4
Add `#ifndef` guard around `PyBytes_RESIZE` (#732)
jakirkham Apr 9, 2025
85eeed3
Unskip accidentally skipped tests (#738)
dstansby Apr 11, 2025
3438e16
Re-enable `VLenBytes` round-trip `None` test (#736)
jakirkham Apr 11, 2025
1ffc6ab
Update development practices (#734)
dstansby Apr 28, 2025
65e16c3
chore: update pre-commit hooks (#747)
pre-commit-ci[bot] May 5, 2025
936f4d2
Make all codecs pickleable (#745)
TomNicholas May 14, 2025
2e0f950
(fix): ensure no `typesize` in the `Blosc` config (#739)
ilan-gold May 14, 2025
308cc25
Unnecessary `None` provided as default (#708)
DimitriPapadopoulos May 14, 2025
4fdb625
chore: update pre-commit hooks (#752)
pre-commit-ci[bot] Jun 3, 2025
7a6fad3
Add streaming decompression for ZSTD_CONTENTSIZE_UNKNOWN case (#707)
mkitti Jul 10, 2025
506c89b
Fix ruff check issues (#764)
mkitti Jul 14, 2025
3e3319c
chore: merge conflicts and syncing upstream
BwL1289 Jul 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 23 additions & 57 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,94 +13,60 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
# macos-13 is an intel runner, macos-14 is a arm64 runner
platform: [ubuntu-latest, windows-latest, macos-13, macos-14]
# macos-13 is an intel runner, macos-14 is an arm64 runner
platform: [ubuntu-latest, ubuntu-22.04-arm, windows-latest, macos-13, macos-14]

defaults:
run:
shell: bash -el {0}

steps:
- name: Checkout source
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0 # required for version resolution

- name: Set up Conda
uses: conda-incubator/[email protected].0
uses: conda-incubator/[email protected].1
with:
channels: conda-forge
miniforge-version: latest
python-version: ${{ matrix.python-version }}
channels: conda-forge
miniforge-version: latest
python-version: ${{ matrix.python-version }}

- name: Show info about `base` environment
shell: "bash -l {0}"
run: |
conda info
conda config --show-sources
conda list --show-channel-urls

- name: Set up `env`
shell: "bash -l {0}"
run: >
conda create -n env
c-compiler cxx-compiler
python=${{matrix.python-version}} wheel pip
- name: Install compilers
run: conda install -y c-compiler cxx-compiler

- name: Install clang
shell: "bash -l {0}"
if: matrix.platform == 'macos-13'
run: |
conda activate env
conda install -y 'clang>=12.0.1,<17'
run: conda install -y 'clang>=12.0.1,<17'

- name: Show info about `env` environment
shell: "bash -l {0}"
- name: Show conda environment info
run: |
conda list --show-channel-urls -n env
conda info
conda config --show-sources
conda list --show-channel-urls

- name: Install numcodecs
shell: "bash -l {0}"
run: |
conda activate env
export DISABLE_NUMCODECS_AVX2=""
# TODO: put back zfpy import when it supports numpy 2.0
python -m pip install -v -e .[test,test_extras,msgpack,crc32c]

- name: Install pcodec
if: matrix.python-version != '3.13'
shell: "bash -l {0}"
run: |
conda activate env
python -m pip install -v ".[pcodec]"
python -m pip install -v -e .[test,test_extras,msgpack,crc32c,pcodec,zfpy]

- name: Install zarr-python
shell: "bash -l {0}"
# Since zarr v3 requires numpy >= 1.25, on Python 3.11 leave it out
# so we can have some tests of our minimum version of numpy (1.24)
if: matrix.python-version != '3.11'
run: |
conda activate env
# TODO: remove --pre option when zarr v3 is out
python -m pip install --pre zarr>=3.0.0b2

# This is used to test with zfpy, which does not yet support numpy 2.0
- name: Install older numpy and zfpy
if: matrix.python-version == '3.11'
shell: "bash -l {0}"
run: |
conda activate env
python -m pip install -v ".[zfpy]"
run: python -m pip install zarr>=3

- name: List installed packages
shell: "bash -l {0}"
run: |
conda activate env
python -m pip list
run: python -m pip list

- name: Run tests
shell: "bash -l {0}"
run: |
conda activate env
pytest -v
run: pytest -v

- uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
6 changes: 3 additions & 3 deletions .github/workflows/wheel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
strategy:
fail-fast: false
matrix:
# macos-13 is an intel runner, macos-14 is a arm64 runner
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
# macos-13 is an intel runner, macos-14 is an arm64 runner
os: [ubuntu-latest, ubuntu-22.04-arm, windows-latest, macos-13, macos-14]
env:
CIBW_TEST_COMMAND: python -c "import numcodecs"
CIBW_BUILD: "cp311-* cp312-* cp313-*"
Expand All @@ -26,7 +26,7 @@ jobs:
with:
submodules: true

- uses: pypa/cibuildwheel@v2.21.3
- uses: pypa/cibuildwheel@v2.23.2

- uses: actions/upload-artifact@v4
with:
Expand Down
11 changes: 5 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
exclude: ^fixture/ # files with trailing whitespaces on purpose
ci:
autoupdate_commit_msg: "chore: update pre-commit hooks"
autoupdate_schedule: "monthly"
autofix_commit_msg: "style: pre-commit fixes"
autofix_prs: false
default_stages: [pre-commit, pre-push]
default_language_version:
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
Expand All @@ -15,20 +14,20 @@ repos:
- id: debug-statements

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.4
rev: v0.11.12
hooks:
- id: ruff
args: ["--fix", "--show-fixes"]
- id: ruff-format

- repo: https://github.com/scientific-python/cookie
rev: 2024.08.19
rev: 2025.05.02
hooks:
- id: sp-repo-review

- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v1.13.0'
rev: v1.16.0
hooks:
- id: mypy
args: [--config-file, pyproject.toml]
additional_dependencies: [numpy, pytest, crc32c, zfpy, 'zarr>=3.0.0b2']
additional_dependencies: [numpy, pytest, crc32c, zfpy, 'zarr>=3']
3 changes: 1 addition & 2 deletions adhoc/blosc_memleak_check.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import sys

import numcodecs
import numpy as np
from numpy.testing import assert_array_equal

import numcodecs

codec = numcodecs.Blosc()
data = np.arange(int(sys.argv[1]))
for _ in range(int(sys.argv[2])):
Expand Down
6 changes: 0 additions & 6 deletions docs/compression/blosc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,9 @@ Blosc
Helper functions
----------------

.. autofunction:: init
.. autofunction:: destroy
.. autofunction:: compname_to_compcode
.. autofunction:: list_compressors
.. autofunction:: get_nthreads
.. autofunction:: set_nthreads
.. autofunction:: cbuffer_sizes
.. autofunction:: cbuffer_complib
.. autofunction:: cbuffer_metainfo
.. autofunction:: compress
.. autofunction:: decompress
.. autofunction:: decompress_partial
3 changes: 3 additions & 0 deletions docs/compression/zstd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ Zstd
.. autoattribute:: codec_id
.. automethod:: encode
.. automethod:: decode
.. note::
If the compressed data does not contain the decompressed size, streaming
decompression will be used.
.. automethod:: get_config
.. automethod:: from_config

Expand Down
13 changes: 8 additions & 5 deletions docs/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,11 @@ contributors.
Merging pull requests
~~~~~~~~~~~~~~~~~~~~~

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

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

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

When making a minor release, open an issue stating your intention so other developers
know that a release is planned. At least a week's notice should be given for other
developers to be aware of and possibly add to the contents of the release.

Major releases obviously need to be given careful consideration, and should be done as
infrequently as possible, as they will break existing code and/or affect data
compatibility in some way.
Expand Down
Loading
Loading