Add support for Zarr-Python v3 and Zarr format v3#530
Add support for Zarr-Python v3 and Zarr format v3#530FedeMPouzols wants to merge 28 commits intomainfrom
Conversation
|
|
|
@dmehring . @Jan-Willem : I was puzzled by this failure in But now I see that the same failure happened already in other PRs merged recently: I've tried to add a fix for it in this commit and it seems to work. Does that sound reasonable, or might there be side-effects/related issues? |
|
Hi @FedeMPouzols, The underlying issue might be related to the behavior of Here is a small test script to illustrate the behavior of the try:
from casacore import images, tables
except ImportError:
import xradio._utils._casacore.casacore_from_casatools as images
import xradio._utils._casacore.casacore_from_casatools as tables
# Note: This is a python-casacore-only environment.
In [27]: tb=tables.table('out.im',readonly=False)
...: tb.putkeyword('imageinfo',{'imagetype': 'sky', 'objectname': 'ngc1234'})
...: tb.close()
...:
...: ia=images.image('out.im')
...: print(ia.info()['imageinfo'])
...: tb=tables.table('out.im')
...: print(tb.getkeyword('imageinfo'))
Successful read/write open of default-locked table out.im: 1 columns, 1 rows
{'imagetype': 'Intensity', 'objectname': 'ngc1234'}
Successful readonly open of default-locked table out.im: 1 columns, 1 rows
{'imagetype': 'sky', 'objectname': 'ngc1234'}
In [28]: tb=tables.table('out.im',readonly=False)
...: tb.putkeyword('imageinfo',{'imagetype': 'beam', 'objectname': 'ngc1234'})
...: tb.close()
...:
...: ia=images.image('out.im')
...: print(ia.info()['imageinfo'])
...: tb=tables.table('out.im')
...: print(tb.getkeyword('imageinfo'))
Successful read/write open of default-locked table out.im: 1 columns, 1 rows
{'imagetype': 'Beam', 'objectname': 'ngc1234'}
Successful readonly open of default-locked table out.im: 1 columns, 1 rows
{'imagetype': 'beam', 'objectname': 'ngc1234'}You can see that I suspect this is due to the internal enum enforcement of One implication of this "feature" is that... if we rely on casacore's The reason the current tests work for the On the other hand, the Therefore, it "successfully" retrieves the "sky" The bigger question (potentially to @dmehring) is: How do we embed/retrieve |
|
The integration tests are timing out because the unit test astroVIPER/test_feather hangs. Fiddling a bit with this test I can see that it triggers at least one I've cancelled the last re-run of the integration test job, as it was already stuck in test_feather, until we find a solution for the n5 issue (and for now I also see direct writing of the attributes json file in that function which will need to be changed / ideally should be avoided). |
|
Hi @FedeMPouzols and @Jan-Willem — just checking in on the plan for #355 and this PR. I'm drafting #557 to introduce Zarr sharding, which might help mitigate potential edge cases where chunking overwhelms the Lustre MDS/OSTs. Since #557 is using this PR/branch as the base, I want to make sure it aligns with your timeline. |
|
@r-xue : I think this branch was in principle planned to be merged around the time the PR was opened. Zarr v3 was working well and the only issue remaining is some warnings related to string types (as discussed in #355). It was decided to not wait for that to be fixed, as it has been an standing issue for a few months and it looks like a low priority at the moment for Zarr developers. |
|
I've merged main into this branch. Also, Zarr 3.1.6 was released a few days ago (it comes with a couple of sharding related fixes). This will trigger the CI tests again and I'd expect their results to be still the same (perhaps with some new tests/changes in the VIPER tests). |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Fixes #355
By default Zarr v3 will be used. Note this includes a "ZARR_VERSION" in
xradio._utils.zarr.configthat the user can change to force v2.