-
Notifications
You must be signed in to change notification settings - Fork 97
add numcodecs.zarr3.to_zarr3 method #741
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
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #741 +/- ##
==========================================
- Coverage 99.96% 99.89% -0.08%
==========================================
Files 63 63
Lines 2736 2763 +27
==========================================
+ Hits 2735 2760 +25
- Misses 1 3 +2
🚀 New features to boost your workflow:
|
# Conflicts: # numcodecs/tests/test_zarr3.py
Thanks for working on this! We should probably have a conversation about the strategy here. My preference would be to move away from separate zarr 2 and zarr 3 codec classes, which would look somewhat different than the effort here. |
Are these mutually exclusive? I see this PR as a shim to solve a pretty urgent problem that Zarr users are experiencing in the V3 transition. In the future, we could refactor how codec classes work, but that's likely a much slower process. |
One way to achieve this shim without adding more problematic zarr 2 / zarr 3 logic to numcodecs would be to implement the changes in this PR in zarr-python, instead of numcodecs. Is there any reason why that would not be possible? |
I would argue that adding this to zarr-python actually increases the problematic coupling, because this |
As numcodecs has so far existed chiefly for zarr-python's benefit, and we control numcodecs, I would argue that effectively all numcodecs interfaces are public to zarr-python. To put it differently, "zarr-python uses numcodecs interface X" would be a valid reason for us not to change that interface, whether interface X was public or not. This is of course a problematic, and ultimately something we should fix. I think the first steps would be to fully extract as much zarr-specific-logic from numcodecs, which argues for making the code in this PR over in zarr-python. |
to_zarr3
function innumcodecs.zarr3
for TypeError when passing old numcodecs to zarr v3 zarr-python#2964TODO: