Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
b1b5f22
fix(zarr-metadata): extension points are written as objects, which ev…
d-v-b Sep 28, 2026
f21439c
fix(zarr-metadata): problems show the JSON they found, and the bounda…
d-v-b Sep 28, 2026
f3bfd68
feat(zarr-metadata): read_array_metadata_v3 returns what it read besi…
d-v-b Sep 28, 2026
4ba6bee
refactor(zarr-metadata)!: a field reads as Read, Unclaimed or Refused…
d-v-b Sep 28, 2026
94271ef
feat(zarr-metadata): a zarr.json is read as the node its node_type sa…
d-v-b Sep 28, 2026
2f7672b
feat(zarr-metadata)!: a bound is its member's type, and a problem car…
d-v-b Sep 28, 2026
fd999e0
feat(zarr-metadata): with_problems groups a read's problems by field,…
d-v-b Sep 29, 2026
ee02435
fix(zarr-metadata)!: a regular grid's chunk lengths are at least 1, a…
d-v-b Sep 29, 2026
887f460
feat(zarr-metadata): JSON Schemas of a TypedDict, a field in a scope,…
d-v-b Sep 29, 2026
d667398
feat(zarr-metadata)!: a model checks itself when it is built, and to_…
d-v-b Sep 29, 2026
e7b934e
fix(zarr-metadata): a member a closed object does not declare is an u…
d-v-b Sep 29, 2026
3b96e78
fix(zarr-metadata): a zarr.json of no node type says what format it i…
d-v-b Sep 29, 2026
8d77352
fix(zarr-metadata): consolidated metadata is judged as the hierarchy …
d-v-b Sep 29, 2026
f5753be
fix(zarr-metadata): two models are equal when they mean the same docu…
d-v-b Sep 29, 2026
c2e5638
fix(zarr-metadata): fix the problems found by the adversarial review …
d-v-b Sep 29, 2026
c7a38a6
fix(zarr-metadata): report a value past JSON_DEPTH as too deep withou…
d-v-b Oct 5, 2026
b55cafb
refactor(zarr-metadata): remove the RecursionError fallback for non-J…
d-v-b Oct 5, 2026
96f17e3
fix(zarr-metadata): fix review findings on the reader stack
d-v-b Oct 5, 2026
0222674
docs(zarr-metadata): rewrite the 382 changelog fragments in plain Eng…
d-v-b Oct 6, 2026
635508d
feat(zarr-metadata): add a separate read that repairs known writer bugs
d-v-b Oct 6, 2026
0158308
docs(zarr-metadata): add a changelog fragment for the repair read
d-v-b Oct 6, 2026
9e0bb82
docs(zarr-metadata): rewrite the 391 changelog fragments in plain Eng…
d-v-b Oct 6, 2026
9bf5211
feat(zarr-metadata): make Context compare and hash by its definitions
d-v-b Oct 6, 2026
5df3047
feat(zarr-metadata): add the Claims type, Conflict, and ScopeConflict…
d-v-b Oct 6, 2026
0f16749
feat(zarr-metadata): add claims_of, which lists what a reading claime…
d-v-b Oct 6, 2026
8723c6e
feat(zarr-metadata): add refines, an information order on two reading…
d-v-b Oct 6, 2026
989367c
feat(zarr-metadata): add Context.disagreements and Context.joined
d-v-b Oct 6, 2026
4d85e80
docs(zarr-metadata): document the scope operations
d-v-b Oct 6, 2026
990ad76
fix(zarr-metadata): compare a gain in refines the way Unclaimed compares
d-v-b Oct 6, 2026
c93da50
docs(zarr-metadata): rename the scope fragment with its PR number
d-v-b Oct 6, 2026
de78ec1
docs(zarr-metadata): rewrite the 392 changelog fragments in plain Eng…
d-v-b Oct 6, 2026
10ae208
feat(zarr-metadata)!: make ZarrV3ArrayMetadata a (document, context) …
d-v-b Oct 6, 2026
21ce3f8
feat(zarr-metadata): cache the array model's equality key and pickle …
d-v-b Oct 6, 2026
8464b1f
feat(zarr-metadata): add update, with_context, refined_in and refines…
d-v-b Oct 6, 2026
a0de8a4
feat(zarr-metadata)!: make ZarrV3GroupMetadata and ZarrV3Consolidated…
d-v-b Oct 6, 2026
0613866
refactor(zarr-metadata)!: remove the held-field machinery
d-v-b Oct 6, 2026
13c3b5c
test(zarr-metadata): migrate tests to document construction and update
d-v-b Oct 6, 2026
f9ebea3
docs(zarr-metadata): describe the (document, context) model
d-v-b Oct 6, 2026
581f2ab
fix(zarr-metadata): fix refines on nested fields, scope of nested mod…
d-v-b Oct 6, 2026
7dd1815
fix(zarr-metadata): freeze model views at every level; build nested m…
d-v-b Oct 6, 2026
d3853d5
fix(zarr-metadata): make reading.consolidated read-only; recurse into…
d-v-b Oct 6, 2026
fa32f89
fix(zarr-metadata): restore pickling of group readings; recurse into …
d-v-b Oct 6, 2026
c84a647
fix(zarr-metadata): pickle a reading through its model
d-v-b Oct 6, 2026
baa96f0
docs(zarr-metadata): rename the document-context fragments with their…
d-v-b Oct 6, 2026
6acbe60
docs(zarr-metadata): rewrite the 393 changelog fragments in plain Eng…
d-v-b Oct 6, 2026
01001bc
feat(zarr-metadata): accept context=None for the default scope in eve…
d-v-b Oct 6, 2026
f3f14da
feat(zarr-metadata): accept node models as consolidated-metadata entries
d-v-b Oct 6, 2026
513f698
chore(zarr-metadata): run pyright unpinned
d-v-b Oct 6, 2026
db5e3d1
docs(zarr-metadata): document model entries in consolidated metadata …
d-v-b Oct 6, 2026
bfe5c64
fix(zarr-metadata): replace models nested inside listed documents; fi…
d-v-b Oct 6, 2026
f076ff3
fix(zarr-metadata): check depth for adopted model entries; re-read re…
d-v-b Oct 6, 2026
ddfeba7
fix(zarr-metadata): make ZarrV3NodeMetadataInput a runtime type; repo…
d-v-b Oct 6, 2026
c54522c
docs(zarr-metadata): rename the consolidating-models fragments with t…
d-v-b Oct 6, 2026
6f1a366
docs(zarr-metadata): rewrite the 395 changelog fragments in plain Eng…
d-v-b Oct 6, 2026
7db6383
refactor(zarr-metadata): a kind is the class that declares is_kind
d-v-b Oct 6, 2026
13b1ffb
refactor(zarr-metadata): let each kind say how its format writes a field
d-v-b Oct 6, 2026
0359b40
refactor(zarr-metadata): move the fill value members to a WithFillVal…
d-v-b Oct 6, 2026
9d73abf
feat(zarr-metadata): add the v2 data type and codec kinds
d-v-b Oct 6, 2026
f7c116c
feat(zarr-metadata): define the v2 data types
d-v-b Oct 6, 2026
49c9a9f
feat(zarr-metadata): define the v2 codecs numcodecs 0.16 writes
d-v-b Oct 6, 2026
79eb196
feat(zarr-metadata): add CORE_V2 and the v2 field readers
d-v-b Oct 6, 2026
9b8cde3
feat(zarr-metadata): read v2 dtype, codecs and fill value in CORE_V2
d-v-b Oct 6, 2026
4ac25eb
fix(zarr-metadata): accept what zarr-python 2.x writes that review ro…
d-v-b Oct 6, 2026
59b86d7
fix(zarr-metadata): keep a zero fill value where the v2 family takes …
d-v-b Oct 6, 2026
ef75bda
fix(zarr-metadata): refuse a v2 typestr that writes no size
d-v-b Oct 8, 2026
ec08ff6
docs(zarr-metadata): name the v2 scopes fragment after its PR
d-v-b Oct 8, 2026
a2ba363
feat(zarr-metadata): read a v2 array document once, in a scope
d-v-b Oct 8, 2026
5c75667
feat(zarr-metadata)!: make the v2 array model a pair of document and …
d-v-b Oct 8, 2026
fd8873b
feat(zarr-metadata)!: make the v2 group model a pair of document and …
d-v-b Oct 8, 2026
042aaa6
feat(zarr-metadata)!: make v2 consolidated metadata a pair that holds…
d-v-b Oct 8, 2026
d904570
feat(zarr-metadata)!: v2 pydantic field types read in a scope; remove…
d-v-b Oct 8, 2026
e207cd8
fix(zarr-metadata): repair the member zarr-python 3.x writes into .zg…
d-v-b Oct 8, 2026
874a46d
fix(zarr-metadata): read every consolidated node beside a doubled key…
d-v-b Oct 8, 2026
e022f4a
fix(zarr-metadata): a repeated slash inside a consolidated node path …
d-v-b Oct 8, 2026
7900385
docs(zarr-metadata): name the v2 models fragments after their PR
d-v-b Oct 8, 2026
8d7b4ac
Merge remote-tracking branch 'upstream/main' into feat/zarr-metadata-…
d-v-b Oct 8, 2026
b05a91f
Fix/from array overwrite source (#4405)
ianhi Oct 8, 2026
4430716
refactor(zarr-metadata)!: export less; say why the core has no valida…
d-v-b Oct 8, 2026
05cf275
refactor(zarr-metadata): narrow JSON containers with type guards, not…
d-v-b Oct 8, 2026
9bf67b5
refactor(zarr-metadata): type the alias registry and the model's held…
d-v-b Oct 8, 2026
59282c5
refactor(zarr-metadata): models compute their own keys on a shared Ke…
d-v-b Oct 8, 2026
3b69760
refactor(zarr-metadata): check what a read established instead of cas…
d-v-b Oct 8, 2026
3c20c0f
docs(zarr-metadata): consolidate the stack's changelog fragments unde…
d-v-b Oct 8, 2026
97fe5a4
docs(zarr-metadata): one changelog fragment for the whole PR
d-v-b Oct 8, 2026
8e17e82
Merge branch 'main' into feat/zarr-metadata-document-context-stack
d-v-b Oct 8, 2026
bb17a80
fix(ci): run xarray's backend tests from their new package (#4491)
d-v-b Oct 8, 2026
246fa20
docs: 3.4.1 release notes (#4489)
d-v-b Oct 8, 2026
f1f7300
Merge branch 'main' into feat/zarr-metadata-document-context-stack
d-v-b Oct 8, 2026
fb6a18d
refactor(zarr-metadata): declare a kind with the class keyword kind=True
d-v-b Oct 8, 2026
ae25974
refactor(zarr-metadata)!: name a read field by what it is: AcceptedFi…
d-v-b Oct 8, 2026
bc4eced
refactor(zarr-metadata): rename Definition.judge to read_configuratio…
d-v-b Oct 9, 2026
3d1a839
fix: zero default scalar for bytes fields in structured dtypes (#4495)
safaksm Oct 9, 2026
19e84dc
test(dtype): cover unicode fields in the structured default scalar te…
d-v-b Oct 9, 2026
12d7222
chore(deps): bump the python-dependencies group with 8 updates (#4488)
dependabot[bot] Oct 9, 2026
09bb377
docs: add a deprecation policy to the contributing guide (#4051)
maxrjones Oct 9, 2026
b996f03
chore(deps): bump cairosvg from 2.9.0 to 2.9.1 (#4499)
dependabot[bot] Oct 9, 2026
2637250
chore: update pre-commit hooks (#4482)
pre-commit-ci[bot] Oct 9, 2026
df4a016
fix: bound memory used by resize chunk cleanup (#4344)
2160039878-cyber Oct 9, 2026
43dfe32
chore(deps): bump multidict from 6.7.1 to 6.9.1 (#4500)
dependabot[bot] Oct 9, 2026
6d986a9
chore(deps): bump multidict (#4498)
dependabot[bot] Oct 9, 2026
382df0f
chore(deps): bump werkzeug from 3.1.8 to 3.1.9 (#4497)
dependabot[bot] Oct 9, 2026
ab4f2fe
chore(deps): bump github-community-projects/issue-metrics (#4487)
dependabot[bot] Oct 9, 2026
6599477
fix: reset the codec-pipeline thread pool after fork (#4483)
barlowa124 Oct 9, 2026
bd0dc84
DOC: fix v3 migration guide store table (#3850)
nuglifeleoji Oct 9, 2026
3c4be60
feat(zarr-metadata)!: a scope is of one Zarr format, and a reader ref…
d-v-b Oct 9, 2026
06260dc
fix(zarr-metadata): a field's configuration, nested fields and a stag…
d-v-b Oct 9, 2026
16c0b5b
fix(zarr-metadata): a gain is judged by what the definition reads, so…
d-v-b Oct 9, 2026
d5436ea
fix(zarr-metadata): a listed group's own listing holds the documents …
d-v-b Oct 9, 2026
1a3ddc2
fix(zarr-metadata): an integer JSON text cannot hold, and a v2 float …
d-v-b Oct 9, 2026
0cb22c1
fix(zarr-metadata): ScopeConflictError pickles and copies with its co…
d-v-b Oct 9, 2026
54a4723
fix(zarr-metadata): a v2 float fill value overflows at its dtype's wi…
d-v-b Oct 9, 2026
f6007db
docs(zarr-metadata): models are pairs, not dataclasses; 3.1 wrote nul…
d-v-b Oct 9, 2026
a6664db
fix(zarr-metadata): the cleanups a review found: messages, guards, v2…
d-v-b Oct 9, 2026
e36af64
docs(zarr-metadata): the fragment names the judge and check removals
d-v-b Oct 12, 2026
31e3e72
refactor(zarr-metadata)!: name the v3 field aliases, the unknown-node…
d-v-b Oct 13, 2026
76d77a4
ci(zarr-metadata): mkdocstrings 1.0.7 for pymdown-extensions 12.2; a …
d-v-b Oct 13, 2026
c414f94
Merge remote-tracking branch 'upstream/main' into feat/zarr-metadata-…
d-v-b Oct 13, 2026
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
11 changes: 7 additions & 4 deletions .github/workflows/downstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,16 @@ jobs:
import xarray; print(f'xarray {xarray.__version__}')
"

- name: Run xarray zarr backend tests
# xarray keeps its backend tests in the `xarray/tests/backends` package
# (pydata/xarray#11633 split the former `test_backends*.py` modules into
# it). Running the package covers the zarr store, region/append, API and
# DataTree tests; the other backends are installed by the `io` extra, so
# their tests run too, as they did before the split.
- name: Run xarray backend tests
working-directory: xarray
run: |
uv run --no-sync python -m pytest --no-header -q \
xarray/tests/test_backends.py \
xarray/tests/test_backends_api.py \
xarray/tests/test_backends_datatree.py
xarray/tests/backends

numcodecs:
name: numcodecs zarr3 codec tests
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/issue-metrics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV"

- name: Run issue-metrics tool
uses: github-community-projects/issue-metrics@a7dc2fb675661e208d4fc6fa321a6b95fc4a06f9 # v5.0.2
uses: github-community-projects/issue-metrics@671528652402b9b8a33da44b5c693b3161bc090f # v5.0.3
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SEARCH_QUERY: 'repo:zarr-developers/zarr-python is:issue created:${{ env.last_month }} -reason:"not planned"'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/zarr-metadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ jobs:
repo: casey/just
version: 1.58.0
- name: Run pyright
# The pyright version and interpreter pins live in the justfile.
# Pyright runs unpinned; the interpreter pin lives in the justfile.
run: just typecheck

docs:
Expand Down
8 changes: 4 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ default_language_version:

repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.6
rev: v0.16.10
hooks:
- id: ruff-check
args: ["--fix", "--show-fixes"]
Expand All @@ -34,7 +34,7 @@ repos:
exclude: mkdocs.yml
- id: trailing-whitespace
- repo: https://github.com/DavidAnson/markdownlint-cli2
rev: v0.23.2
rev: v0.23.3
hooks:
# Markdown structure/hygiene. Rule selection and ignores are in
# .markdownlint-cli2.jsonc; complements ci/lint_docs.py (RST residue,
Expand Down Expand Up @@ -76,7 +76,7 @@ repos:
hooks:
- id: sp-repo-review
- repo: https://github.com/numpy/numpydoc
rev: v1.11.0rc0
rev: v1.11.0
hooks:
- id: numpydoc-validation
- repo: local
Expand All @@ -89,7 +89,7 @@ repos:
types: [python]
files: ^(src|tests)/
- repo: https://github.com/zizmorcore/zizmor-pre-commit
rev: v1.30.0
rev: v1.30.1
hooks:
- id: zizmor
- repo: https://github.com/twisted/towncrier
Expand Down
1 change: 1 addition & 0 deletions changes/3850.doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Document the removal of `LRUStoreCache` in the v3 migration guide, and point to the experimental `zarr.experimental.cache_store.CacheStore` as its replacement.
6 changes: 6 additions & 0 deletions changes/4051.doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Added a deprecation policy to the contributing guide. It defines when a
deprecation cycle is required for public API changes, a shared framework for
deciding whether a removal is worthwhile, the mechanics a deprecation must
follow (warning class, message contents, documentation, and changelog entry),
and a minimum deprecation period of at least 6 months and at least one minor
release before removal.
7 changes: 0 additions & 7 deletions changes/4334.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4340.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4342.bugfix.md

This file was deleted.

8 changes: 8 additions & 0 deletions changes/4344.bugfix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Resizing an array with `delete_outside_chunks=True` now generates only the
out-of-bounds chunk coordinates and deletes them with a bounded pool of
workers, instead of materializing the entire old and new grids and all
deletion tasks. This bounds auxiliary memory during shrinking and mixed
growing/shrinking resizes while preserving retained chunks. Growing, or
shrinking within the last chunk of each axis, no longer schedules any
deletion work. When a deletion fails, the remaining deletions are now
cancelled before the error is raised; previously they ran to completion.
7 changes: 0 additions & 7 deletions changes/4353.bugfix.md

This file was deleted.

16 changes: 0 additions & 16 deletions changes/4356.bugfix.md

This file was deleted.

8 changes: 0 additions & 8 deletions changes/4363.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4368.misc.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4372.misc.md

This file was deleted.

3 changes: 0 additions & 3 deletions changes/4375.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4376.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4377.misc.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4381.bugfix.md

This file was deleted.

17 changes: 0 additions & 17 deletions changes/4382.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4385.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4387.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4391.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4392.misc.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4397.bugfix.md

This file was deleted.

5 changes: 0 additions & 5 deletions changes/4402.bugfix.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/4407.misc.md

This file was deleted.

Loading
Loading