Skip to content

feat(zarr-metadata): re-export each v3 extension package's submodule names - #4588

Merged
d-v-b merged 5 commits into
zarr-developers:mainfrom
d-v-b:feat/zarr-metadata-v3-package-reexports
Nov 1, 2026
Merged

d-v-b merged 5 commits into
zarr-developers:mainfrom
d-v-b:feat/zarr-metadata-v3-package-reexports

Conversation

@d-v-b

@d-v-b d-v-b commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This PR ensures that zarr_metadata.v3.data_type, .codec, .chunk_grid and .chunk_key_encoding export every name their submodules export, so from zarr_metadata.v3.data_type import BoolDataTypeName works again. This undoes breakage induced by 0.6.0 (downstream zarrista imports the data type names that way). The packages are aliases, like the top-level namespace and the format front doors. A new test pins that each re-exports exactly its submodules' names as the same objects. Naming checks skip the alias packages, since they already check names n the submodules.

Assisted-by: ClaudeCode:claude-opus-5-5

For reviewers

blast radius confined to zarr-metadata, so self-merge-worthy

Author attestation

  • I am a human, these are my changes, and I have reviewed and understood every change and can explain why each is correct.

TODO

  • Add unit tests and/or doctests in docstrings
  • Add docstrings and API docs for any new/modified user-facing classes and functions
  • New/modified features documented in docs/user-guide/*.md
  • Changes documented as a new file in changes/
  • GitHub Actions have all passed
  • Test coverage is 100% (Codecov passes)

…names

`zarr_metadata.v3.data_type`, `.codec`, `.chunk_grid` and
`.chunk_key_encoding` export every name their submodules export, so
`from zarr_metadata.v3.data_type import BoolDataTypeName` works again, as
it did before 0.6.0 (downstream zarrista imports the data type names that
way). Each submodule stays the name's home: the packages are aliases,
like the top-level namespace and the format front doors, and a new test
pins that each re-exports exactly its submodules' names as the same
objects. The naming checks skip the alias packages, whose names they
already check in the submodules.

Assisted-by: ClaudeCode:claude-opus-5-5
@github-actions github-actions Bot added needs release notes Automatically applied to PRs which haven't added release notes zarr-metadata Specific to the zarr-metadata sub-package labels Nov 1, 2026
@read-the-docs-community

read-the-docs-community Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

@codecov

codecov Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.84%. Comparing base (7e81965) to head (3fae14d).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4588   +/-   ##
=======================================
  Coverage   94.84%   94.84%           
=======================================
  Files          96       96           
  Lines       13998    13998           
=======================================
  Hits        13276    13276           
  Misses        722      722           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@d-v-b
d-v-b merged commit c5039b9 into zarr-developers:main Nov 1, 2026
37 checks passed
d-v-b added a commit to d-v-b/zarr-python that referenced this pull request Nov 2, 2026
Resolve the rename against the four zarr-metadata changes main gained:
the ZARR_PYTHON_CONTEXT scope and the *_CONTEXT constant names (zarr-developers#4583),
the v3 submodule re-exports (zarr-developers#4588), the Hypothesis strategies (zarr-developers#4575)
and the docstrings for every public object (zarr-developers#4590).

Every conflict was the rename on one side and new upstream text on the
other, so each is resolved as the upstream text with the rename applied.
The rename is carried into upstream's additions: the new docstrings say
"field" for a JSON key and "declaration" for an extension-point value,
and the strategies module's `fields` strategy is `declarations`, with
`FieldForm` now `DeclarationForm` in its tests. The zarr-developers#4575 changelog
fragment uses the new name, since neither name has been released.

Assisted-by: ClaudeCode:claude-fable-5-1
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
d-v-b added a commit to d-v-b/zarr-python that referenced this pull request Nov 2, 2026
This branch was squash-merged upstream as zarr-developers#4575 (4a72dd4), whose tree
matches this branch's head. Each conflict is main's later change to the
same files (zarr-developers#4583, zarr-developers#4588, zarr-developers#4590, zarr-developers#4592), so every file takes main's
side, and the branch now matches main.

Assisted-by: ClaudeCode:claude-opus-5-5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
d-v-b added a commit to d-v-b/zarr-python that referenced this pull request Nov 4, 2026
The base branch added private base64 helpers in `_byte.py`. Define the
public `base64_fill_value_rules` there, on top of `base64_problems`,
instead of in `_numpy.py`, and take the base's versions of
`null_terminated_bytes`, `_numpy.py` and the v2 rules. Re-export the
rule from `zarr_metadata.v3.data_type`, as zarr-developers#4588 requires of every
submodule name, and say "nested declarations" in the docs example, as
zarr-developers#4592 does.

Assisted-by: ClaudeCode:claude-opus-5-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs release notes Automatically applied to PRs which haven't added release notes zarr-metadata Specific to the zarr-metadata sub-package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant