-
-
Notifications
You must be signed in to change notification settings - Fork 283
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
Accessing nested children via consolidated metadata fails #2358
Comments
Oh, I didn't know that was valid. I'll push a fix up today. |
TomAugspurger
added a commit
to TomAugspurger/zarr-python
that referenced
this issue
Oct 14, 2024
This fixes `Group.__getitem__` when indexing with a key like 'subgroup/array'. The basic idea is to rewrite the indexing operation as `group['subgroup']['array']` by splitting the key and doing each operation independently. This is fine for consolidated metadata which doesn't need to do IO. There's a complication around unconsolidated metadata, though. What if we encounter a node where `Group.getitem` returns a sub Group without consolidated metadata. Then we need to fall back to non-consolidated metadata. We've written _getitem_consolidated as a regular (non-async) function so we need to pop back up to the async caller and have *it* fall back. Closes zarr-developers#2358
TomAugspurger
added a commit
to TomAugspurger/zarr-python
that referenced
this issue
Oct 14, 2024
This fixes `Group.__getitem__` when indexing with a key like 'subgroup/array'. The basic idea is to rewrite the indexing operation as `group['subgroup']['array']` by splitting the key and doing each operation independently. This is fine for consolidated metadata which doesn't need to do IO. There's a complication around unconsolidated metadata, though. What if we encounter a node where `Group.getitem` returns a sub Group without consolidated metadata. Then we need to fall back to non-consolidated metadata. We've written _getitem_consolidated as a regular (non-async) function so we need to pop back up to the async caller and have *it* fall back. Closes zarr-developers#2358
4 tasks
TomAugspurger
added a commit
that referenced
this issue
Oct 17, 2024
* Fixed consolidated Group getitem with multi-part key This fixes `Group.__getitem__` when indexing with a key like 'subgroup/array'. The basic idea is to rewrite the indexing operation as `group['subgroup']['array']` by splitting the key and doing each operation independently. Closes #2358 --------- Co-authored-by: Joe Hamman <joe@earthmover.io>
d-v-b
pushed a commit
to d-v-b/zarr-python
that referenced
this issue
Oct 18, 2024
…#2363) * Fixed consolidated Group getitem with multi-part key This fixes `Group.__getitem__` when indexing with a key like 'subgroup/array'. The basic idea is to rewrite the indexing operation as `group['subgroup']['array']` by splitting the key and doing each operation independently. Closes zarr-developers#2358 --------- Co-authored-by: Joe Hamman <joe@earthmover.io>
d-v-b
added a commit
that referenced
this issue
Oct 18, 2024
* move v3/tests to tests and fix various mypy issues * test(ci): change branch name in v3 workflows (#2368) * Use lazy % formatting in logging functions (#2366) * Use lazy % formatting in logging functions * f-string should be more efficient * Space before unit symbol From "SI Unit rules and style conventions": https://physics.nist.gov/cuu/Units/checklist.html There is a space between the numerical value and unit symbol, even when the value is used in an adjectival sense, except in the case of superscript units for plane angle. * Enforce ruff/flake8-logging-format rules (G) --------- Co-authored-by: Joe Hamman <joe@earthmover.io> * Move roadmap and v3-design documument to docs (#2354) * move roadmap to docs * formatting and minor copy editing * Multiple imports for an import name (#2367) Co-authored-by: Joe Hamman <joe@earthmover.io> * Enforce ruff/pycodestyle warnings (W) (#2369) * Apply ruff/pycodestyle rule W291 W291 Trailing whitespace * Enforce ruff/pycodestyle warnings (W) It looks like `ruff format` does not catch all trailing spaces. --------- Co-authored-by: Joe Hamman <joe@earthmover.io> * Apply ruff/pycodestyle preview rule E262 (#2370) E262 Inline comment should start with `# ` Co-authored-by: Joe Hamman <joe@earthmover.io> * Fix typo (#2382) Co-authored-by: Joe Hamman <joe@earthmover.io> * Imported name is not used anywhere in the module (#2379) * Missing mandatory keyword argument `shape` (#2376) * Update ruff rules to ignore (#2374) Co-authored-by: Joe Hamman <joe@earthmover.io> * Docstrings for arraymodule (#2276) * start to docstrings for arraymodule * incorporating toms edits, overriding mypy error... * fix attrs * Update src/zarr/core/array.py Co-authored-by: Sanket Verma <svsanketverma5@gmail.com> * fix store -> storage * remove properties from asyncarray docstring --------- Co-authored-by: Sanket Verma <svsanketverma5@gmail.com> Co-authored-by: Joe Hamman <joe@earthmover.io> * fix/normalize storage paths (#2384) * bring in path normalization function from v2, and add a failing test * rephrase comment * simplify storepath creation * Update tests/v3/test_api.py Co-authored-by: Joe Hamman <joe@earthmover.io> * refactor: remove redundant zarr format fixture * replace assertion with an informative error message * fix incorrect path concatenation in make_store_path, and refactor store_path tests * remove upath import because we don't need it * apply suggestions from code review --------- Co-authored-by: Joe Hamman <joe@earthmover.io> * Enforce ruff/flake8-pyi rule PYI013 (#2389) PYI013 Non-empty class body must not contain `...` Note that documentation is enough to fill the class body. * deps: remove fasteners from list of dependencies (#2386) * Enforce ruff/flake8-annotations rule ANN003 (#2388) ANN003 Missing type annotation Co-authored-by: Joe Hamman <joe@earthmover.io> * Enforce ruff/Perflint rules (PERF) (#2372) * Apply ruff/Perflint rule PERF401 PERF401 Use a list comprehension to create a transformed list * Enforce ruff/Perflint rules (PERF) * chore: update package maintainers (#2387) * chore: update package maintainers * Update pyproject.toml Co-authored-by: David Stansby <dstansby@gmail.com> --------- Co-authored-by: David Stansby <dstansby@gmail.com> * Fixed consolidated Group getitem with multi-part key (#2363) * Fixed consolidated Group getitem with multi-part key This fixes `Group.__getitem__` when indexing with a key like 'subgroup/array'. The basic idea is to rewrite the indexing operation as `group['subgroup']['array']` by splitting the key and doing each operation independently. Closes #2358 --------- Co-authored-by: Joe Hamman <joe@earthmover.io> * chore: add python 3.13 to ci / pyproject.toml (#2385) * chore: add python 3.13 to ci / pyproject.toml * update hatch matrix * remove references to dead test dir in pyproject.toml * remove v3 reference in test --------- Co-authored-by: Joe Hamman <joe@earthmover.io> Co-authored-by: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> Co-authored-by: Emma Marshall <55526386+e-marshall@users.noreply.github.com> Co-authored-by: Sanket Verma <svsanketverma5@gmail.com> Co-authored-by: David Stansby <dstansby@gmail.com> Co-authored-by: Tom Augspurger <tom.w.augspurger@gmail.com>
This was referenced Nov 1, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Zarr version
3.0.0.beta
Numcodecs version
0.13
Python Version
3.11
Operating System
Mac
Installation
pip
Description
In pydata/xarray#9552, I noticed that accessing nested children fails when using consolidated metadata.
Steps to reproduce
Additional output
No response
The text was updated successfully, but these errors were encountered: