Repository navigation
Conversation
… reference page Every public module, `__all__` name, and member of a public class now carries the docstring its mkdocstrings page renders: TypedDict fields, model attributes and methods, the metadata key sets, and the top-level module and `__version__`. Numpy `Attributes` sections become per-field docstrings. The `struct` data type, which no page rendered, joins the data type page. tests/test_api_docs.py reads the package through griffe, as the pages do, and fails on an undocumented public object, a public module no page renders, or a Partial (or on-disk v2) type whose field docstrings drift from its counterpart's. Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
…api-docs-13ef0c # Conflicts: # packages/zarr-metadata/docs/api/index.md # packages/zarr-metadata/pyproject.toml # packages/zarr-metadata/src/zarr_metadata/__init__.py # packages/zarr-metadata/src/zarr_metadata/_json.py # packages/zarr-metadata/src/zarr_metadata/_typed_json.py # packages/zarr-metadata/src/zarr_metadata/model/_array.py # packages/zarr-metadata/src/zarr_metadata/model/_group.py # packages/zarr-metadata/src/zarr_metadata/model/_validation.py # packages/zarr-metadata/src/zarr_metadata/v2/array.py # packages/zarr-metadata/src/zarr_metadata/v2/codec.py # packages/zarr-metadata/src/zarr_metadata/v2/group.py # packages/zarr-metadata/src/zarr_metadata/v3/_definition.py # packages/zarr-metadata/src/zarr_metadata/v3/_registry.py # packages/zarr-metadata/src/zarr_metadata/v3/array.py # packages/zarr-metadata/src/zarr_metadata/v3/chunk_grid/regular.py # packages/zarr-metadata/src/zarr_metadata/v3/codec/blosc.py # packages/zarr-metadata/src/zarr_metadata/v3/codec/cast_value.py # packages/zarr-metadata/src/zarr_metadata/v3/codec/crc32c.py # packages/zarr-metadata/src/zarr_metadata/v3/codec/gzip.py # packages/zarr-metadata/src/zarr_metadata/v3/codec/sharding_indexed.py # packages/zarr-metadata/src/zarr_metadata/v3/codec/zstd.py # packages/zarr-metadata/src/zarr_metadata/v3/data_type/numpy_datetime64.py # packages/zarr-metadata/src/zarr_metadata/v3/data_type/numpy_timedelta64.py # packages/zarr-metadata/src/zarr_metadata/v3/data_type/struct.py # packages/zarr-metadata/src/zarr_metadata/v3/group.py
The merge of main brought the v2 codec and data type modules, the split model modules, the shared `definition` package and the problem fields `input` and `ctx`, 142 of whose public objects had no docstring. Each now has one. The per-field docstrings that conflicting hunks dropped (v3 array fields, codec configurations, `StructField`, the numpy time configurations) are restored where the field kept its meaning, and the API index renders `__version__` again. The mirrored-docstring check follows main's types: the Partial forms are gone, leaving the on-disk v2 `.zarray` and `.zgroup` types. Assisted-by: ClaudeCode:claude-opus-5-5
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Every public object now has an API reference entry with a docstring, and the
structdata type has its reference page.A new test fails when a public object is undocumented or a public module has no page.
What changed
__all__name, and member of a public class has a docstring: TypedDict fields, model attributes and methods, the*Updatetypes, the v2 codec parameter and data type configurations, thedefinitionpackage, the problem fields, the top-level module and__version__. Fields are documented by a string under the field, the style the package already used; the numpyAttributessections inStructFieldand thenumpy.datetime64/numpy.timedelta64configurations became per-field docstrings. Spec rules are cited with permalinks pinned to the commits the package already cites; v2 codec parameters (which have no spec) were checked against numcodecs and each module's canonical form.zarr_metadata.v3.data_type.structwas on no page; it is now on the data type page, and the API index renders__version__.tests/test_api_docs.pyreads the package through griffe, as mkdocstrings does, and asserts that every public module has a:::page, every public object has a docstring, and the on-disk v2.zarray/.zgrouptypes carry the same field docstrings as their merged counterparts.griffelibjoins thetestdependency group.Where the docs and the code disagree (documented, not changed)
must_understand: falseon a codec as invalid. The spec forbids it only for data types, chunk grids and chunk key encodings (core/index.rst#L1580-L1581). The codec docstrings state both.ZarrV2LzmaParameterssays its parameters are "as thelzmamodule accepts them", but its types admit valueslzmarefuses when compressing:format: 0, apresetabove 9, apresetwithfilters, a check other than none underFORMAT_ALONE,FORMAT_RAWwithoutfilters. The field docstrings describe whatlzmaaccepts.deltaandfixedscaleoffsetparameters admitdtype: "|O", which numcodecs refuses;bitroundadmits akeepbitsabove the mantissa width, which numcodecs refuses when encoding.Checks
Ran locally: ruff, pyright 1.1.414, the test suite on Python 3.11 and 3.14, and
mkdocs build --strict.Merge notes
The branch merges
mainafter zarr-developers#4490 restructured the package. Conflicts were resolved in favor of main's text inside each conflicting hunk; the docstrings those hunks dropped are restored in the commit after the merge.🤖 Generated with Claude Code