Skip to content

Conversation

d-v-b
Copy link
Contributor

@d-v-b d-v-b commented Aug 13, 2025

zarr.abc.store imports symbols from modules in zarr.core; if you add a new ABC to zarr.abc.store, and use it in one of the modules that zarr.abc.store is depending on in zarr.core, you will get a circular import.

This PR puts a band-aid on this problem by moving those imports to within the methods that actually need them. A better fix would be to re-organize the dependencies of this package so that we are structurally avoiding circularity. That can come later.

closes #3338

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/*.rst
  • Changes documented as a new file in changes/
  • GitHub Actions have all passed
  • Test coverage is 100% (Codecov passes)

@github-actions github-actions bot added the needs release notes Automatically applied to PRs which haven't added release notes label Aug 13, 2025
@github-actions github-actions bot removed the needs release notes Automatically applied to PRs which haven't added release notes label Aug 13, 2025
@d-v-b d-v-b requested a review from a team August 13, 2025 09:16
@d-v-b d-v-b merged commit 18419f0 into zarr-developers:main Aug 13, 2025
29 checks passed
@d-v-b d-v-b deleted the chore/lower-store-imports branch August 13, 2025 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

abstraction leakage in Store abc

2 participants