Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use zarr v3 dimension_names #9669

Merged
merged 5 commits into from
Oct 24, 2024

Conversation

rabernat
Copy link
Contributor

@rabernat rabernat requested a review from jhamman October 24, 2024 01:34
@rabernat
Copy link
Contributor Author

Question: do we want to handle the case where V3 data have _ARRAY_DIMENSIONS attrs set?

xarray/backends/zarr.py Outdated Show resolved Hide resolved
@shoyer
Copy link
Member

shoyer commented Oct 24, 2024

Question: do we want to handle the case where V3 data have _ARRAY_DIMENSIONS attrs set?

Hopefully such Zarr v3 files do not exist! I am OK skipping this

@TomNicholas TomNicholas added the topic-zarr Related to zarr storage library label Oct 24, 2024
Co-authored-by: Stephan Hoyer <[email protected]>
@shoyer
Copy link
Member

shoyer commented Oct 24, 2024

Looks good, thanks Ryan!

At some point, it would also probably be a good idea to update our Zarr encoding docs: https://docs.xarray.dev/en/stable/internals/zarr-encoding-spec.html

@TomNicholas TomNicholas added the plan to merge Final call for comments label Oct 24, 2024
@TomNicholas
Copy link
Member

TomNicholas commented Oct 24, 2024

Are the upstream errors expected / allowed for now? (They are not going to be specific to this issue, but I'm wondering about the release)

@TomNicholas
Copy link
Member

Actually this error

AttributeError: 'ArrayV2Metadata' object has no attribute 'dimension_names'

does seem like its relevant to this PR

@TomNicholas TomNicholas removed the plan to merge Final call for comments label Oct 24, 2024
@rabernat
Copy link
Contributor Author

Yes thanks for flagging. I'm blaming @shoyer's suggestion in fc3d4c3, which broke compatibility with V2 metadata. 😛 Will push a fix later tonight.

xarray/backends/zarr.py Outdated Show resolved Hide resolved
@TomNicholas
Copy link
Member

This looks good now - the only remaining upstream failures are groupby-related. Merge?

@TomNicholas TomNicholas merged commit 519f05e into pydata:main Oct 24, 2024
27 of 29 checks passed
dcherian added a commit to dcherian/xarray that referenced this pull request Oct 29, 2024
* main:
  Add `DataTree.persist` (pydata#9682)
  Typing annotations for arithmetic overrides (e.g., DataArray + Dataset) (pydata#9688)
  Raise `ValueError` for unmatching chunks length in `DataArray.chunk()` (pydata#9689)
  Fix inadvertent deep-copying of child data in DataTree (pydata#9684)
  new blank whatsnew (pydata#9679)
  v2024.10.0 release summary (pydata#9678)
  drop the length from `numpy`'s fixed-width string dtypes (pydata#9586)
  fixing behaviour for group parameter in `open_datatree` (pydata#9666)
  Use zarr v3 dimension_names (pydata#9669)
  fix(zarr): use inplace array.resize for zarr 2 and 3 (pydata#9673)
  implement `dask` methods on `DataTree` (pydata#9670)
  support `chunks` in `open_groups` and `open_datatree` (pydata#9660)
  Compatibility for zarr-python 3.x (pydata#9552)
  Update to_dataframe doc to match current behavior (pydata#9662)
  Reduce graph size through writing indexes directly into graph for ``map_blocks`` (pydata#9658)
dcherian added a commit to dcherian/xarray that referenced this pull request Nov 3, 2024
* main: (85 commits)
  Refactor out utility functions from to_zarr (pydata#9695)
  Use the same function to floatize coords in polyfit and polyval (pydata#9691)
  Add `DataTree.persist` (pydata#9682)
  Typing annotations for arithmetic overrides (e.g., DataArray + Dataset) (pydata#9688)
  Raise `ValueError` for unmatching chunks length in `DataArray.chunk()` (pydata#9689)
  Fix inadvertent deep-copying of child data in DataTree (pydata#9684)
  new blank whatsnew (pydata#9679)
  v2024.10.0 release summary (pydata#9678)
  drop the length from `numpy`'s fixed-width string dtypes (pydata#9586)
  fixing behaviour for group parameter in `open_datatree` (pydata#9666)
  Use zarr v3 dimension_names (pydata#9669)
  fix(zarr): use inplace array.resize for zarr 2 and 3 (pydata#9673)
  implement `dask` methods on `DataTree` (pydata#9670)
  support `chunks` in `open_groups` and `open_datatree` (pydata#9660)
  Compatibility for zarr-python 3.x (pydata#9552)
  Update to_dataframe doc to match current behavior (pydata#9662)
  Reduce graph size through writing indexes directly into graph for ``map_blocks`` (pydata#9658)
  Add close() method to DataTree and use it to clean-up open files in tests (pydata#9651)
  Change URL for pydap test (pydata#9655)
  Fix multiple grouping with missing groups (pydata#9650)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
run-upstream Run upstream CI topic-zarr Related to zarr storage library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Zarr V3 support: use dimension_names array metadata rather than user attribute _ARRAY_DIMENSIONS
5 participants