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

[draft] zarr object models #46

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
clarifiy hierarchy equality example
d-v-b committed Sep 21, 2023

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
commit 60594f33a5cd606bf61e14a11209c99a0e9a75a3
2 changes: 1 addition & 1 deletion draft/ZEP0006.md
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ The reference python implementation of Zarr provides APIs for managing Zarr grou

To see why this matters, consider a programmer who wishes to check that two Zarr hierarchies (called "A" and "B") are identically structured, i.e. that the two hierarchies have the same tree structure, with structurally identical nodes. This requires resolving two checks:
- for each Zarr array in hierarchy A, there is a Zarr array in hierarchy B with the same position in the hierarchy, the same metadata, and the same array properties.
- for each Zarr group in hierarchy A, there is a Zarr group in hierarchy B with the same position in the hierarchy, the same metadata, and that the members of both groups have members that pass this check and the previously defined array equality check.
- for each Zarr group in hierarchy A, there is a Zarr group in hierarchy B with the same position in the hierarchy, the same metadata; additionaly, the members of both groups pass this check (for group members) or the previously defined array equality check (for array members).

Using an API that only references Zarr arrays and groups, the programmer will be forced to write a new hierarchy equality checking routine for each new hierarchy. But if the programmer has access to a data structure that can represent a Zarr hierarchy, then the aforementioned binary similarity operation can be defined just once for this data structure, and it will work for any two Zarr hierarchies. This is a much better outcome.