-
-
Notifications
You must be signed in to change notification settings - Fork 344
Create read only copy if needed when opening a store path #3156
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
Conversation
Co-authored-by: Davis Bennett <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Requesting changes because:
- This should get a release note
- My old release note from when I added the error should be deleted
Co-authored-by: David Stansby <[email protected]>
Co-authored-by: David Stansby <[email protected]>
Thanks, done in |
FYI I tried running xarray's zarr tests with this PR and while it fixes the basic read_only failure that #3068 caused (see for example this test, which passes with this PR), I still see a lot of other errors. I'm just trying to work out if those errors are caused by this PR or by zarr's dtypes refactor. I also see a lot of things like this
suggesting that xarray might need to swallow the warning being raised in this PR. |
Why do we need to raise a warning here? Doesn't the new |
I agree, this isn't something to warn for, it's just a change of behaviour to be documented. |
👍 to this. FWIW I think we have been way to eager to issue warnings in Zarr. No warning is needed here. |
After talking to @ianhi I think those other errors are related to the dtypes changes rather than to the changes in this PR. |
Yes they are definitely unrelated to this and instead are relevant to the dtypes changes. |
Co-authored-by: Tom Nicholas <[email protected]>
thanks for this suggestion, Davis, and the affirmations, Tom and Ryan. The PR no longer includes a warning. My decision to initially include one was influenced by the prevalence of warnings elsewhere so it's helpful to have that general correction. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be good to get coverage back up before merging.
David's comments have clearly been addressed, he's on vacation and can't approve. GH won't let us merge with pending changes requested..
@meeseeksdev backport to 3.0.9 |
Owee, I'm MrMeeseeks, Look at me. There seem to be a conflict, please backport manually. Here are approximate instructions:
And apply the correct labels and milestones. Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon! Remember to remove the If these instructions are inaccurate, feel free to suggest an improvement. |
@meeseeksdev backport to 3.0.9 |
Owee, I'm MrMeeseeks, Look at me. There seem to be a conflict, please backport manually. Here are approximate instructions:
And apply the correct labels and milestones. Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon! Remember to remove the If these instructions are inaccurate, feel free to suggest an improvement. |
…opers#3156) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py Co-authored-by: Davis Bennett <[email protected]> * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening Co-authored-by: Tom Nicholas <[email protected]> * Improve code coverage --------- Co-authored-by: Davis Bennett <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> (cherry picked from commit 5731c6c)
) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py * Update src/zarr/storage/_common.py * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening * Improve code coverage --------- (cherry picked from commit 5731c6c) Co-authored-by: Max Jones <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]>
* Create read only copy if needed when opening a store path (#3156) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py Co-authored-by: Davis Bennett <[email protected]> * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening Co-authored-by: Tom Nicholas <[email protected]> * Improve code coverage --------- Co-authored-by: Davis Bennett <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> (cherry picked from commit 5731c6c) * release notes --------- Co-authored-by: Max Jones <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]>
* Create read only copy if needed when opening a store path (#3156) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py Co-authored-by: Davis Bennett <[email protected]> * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening Co-authored-by: Tom Nicholas <[email protected]> * Improve code coverage --------- Co-authored-by: Davis Bennett <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> (cherry picked from commit 5731c6c) * release notes --------- Co-authored-by: Max Jones <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]>
* Enable tests on 3.0.x branch (#3135) * Changelog for 3.0.9 * Backport PR #3149: Add GroupNotFound error to API docs (#3179) Co-authored-by: David Stansby <[email protected]> * Backport PR #3140: Suppress FileNotFoundError when deleting keys in the obstore adapter (#3180) Co-authored-by: Lukas Bindreiter <[email protected]> * Backport PR #3138: Add with_read_only() convenience method to store (#3181) Co-authored-by: Max Jones <[email protected]> * Create read only copy if needed when opening a store path (#3156) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py Co-authored-by: Davis Bennett <[email protected]> * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening Co-authored-by: Tom Nicholas <[email protected]> * Improve code coverage --------- Co-authored-by: Davis Bennett <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> (cherry picked from commit 5731c6c) * Create read only copy if needed when opening a store path (#3156) (#3182) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py * Update src/zarr/storage/_common.py * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening * Improve code coverage --------- (cherry picked from commit 5731c6c) Co-authored-by: Max Jones <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> * Remove breaking check about `auto_mkdir` for FSSpecStore (#3193) * Remove breaking check from _make_async * Update expected error * Change import structure to protect against AttributeError * changelog * add test to ensure that we can create a read-only copy of the store with auto_mkdir=False * only test if the async wrapper is available --------- Co-authored-by: Davis Bennett <[email protected]> (cherry picked from commit 5a24487) * Remove breaking check about `auto_mkdir` for FSSpecStore (#3193) (#3203) * Remove breaking check from _make_async * Update expected error * Change import structure to protect against AttributeError * changelog * add test to ensure that we can create a read-only copy of the store with auto_mkdir=False * only test if the async wrapper is available --------- (cherry picked from commit 5a24487) Co-authored-by: Max Jones <[email protected]> * Add missing import for AsyncFileSystemWrapper for `_make_async` in `_fsspec.py` (#3195) * Add missing import for AsyncFileSystemWrapper in `_fsspec.py` * Add missing changelog entry for AsyncFileSystemWrapper import fix * Move AsyncFileSystemWrapper import past the version check in `_fsspec.py` * Add newline after AsyncFileSystemWrapper import in `_fsspec.py` * Simplify import statement for AsyncFileSystemWrapper in `_fsspec.py` --------- Co-authored-by: Altay Sansal <[email protected]> (cherry picked from commit 97aa42f) * Auto backport of pr 3195 on 3.0.10 (#3204) * Remove breaking check about `auto_mkdir` for FSSpecStore (#3193) * Remove breaking check from _make_async * Update expected error * Change import structure to protect against AttributeError * changelog * add test to ensure that we can create a read-only copy of the store with auto_mkdir=False * only test if the async wrapper is available --------- Co-authored-by: Davis Bennett <[email protected]> (cherry picked from commit 5a24487) * Add missing import for AsyncFileSystemWrapper for `_make_async` in `_fsspec.py` (#3195) * Add missing import for AsyncFileSystemWrapper in `_fsspec.py` * Add missing changelog entry for AsyncFileSystemWrapper import fix * Move AsyncFileSystemWrapper import past the version check in `_fsspec.py` * Add newline after AsyncFileSystemWrapper import in `_fsspec.py` * Simplify import statement for AsyncFileSystemWrapper in `_fsspec.py` --------- Co-authored-by: Altay Sansal <[email protected]> (cherry picked from commit 97aa42f) --------- Co-authored-by: Max Jones <[email protected]> Co-authored-by: Altay Sansal <[email protected]> Co-authored-by: Altay Sansal <[email protected]> * 3.0.9 release notes (#3183) * Create read only copy if needed when opening a store path (#3156) * Create read only copy if needed when opening a store path * Add ValueError to Raises section * Update expected warning * Update src/zarr/storage/_common.py Co-authored-by: Davis Bennett <[email protected]> * Use ANY_ACCESS_MODE * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update src/zarr/storage/_common.py Co-authored-by: David Stansby <[email protected]> * Update changes * Try using get_args on definition * Revert "Try using get_args on definition" This reverts commit 7ad760f. * Add test * Remove warning * Apply suggestion for try; except shortening Co-authored-by: Tom Nicholas <[email protected]> * Improve code coverage --------- Co-authored-by: Davis Bennett <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> (cherry picked from commit 5731c6c) * release notes --------- Co-authored-by: Max Jones <[email protected]> Co-authored-by: David Stansby <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> * release notes --------- Co-authored-by: Lumberbot (aka Jack) <[email protected]> Co-authored-by: Lukas Bindreiter <[email protected]> Co-authored-by: Max Jones <[email protected]> Co-authored-by: Davis Bennett <[email protected]> Co-authored-by: Tom Nicholas <[email protected]> Co-authored-by: Altay Sansal <[email protected]> Co-authored-by: Altay Sansal <[email protected]>
This PR makes a read-only copy of a store when using
StorePath.open(mode="r")
.See discussion in #3068. This augments #3068 (it still errors when attempting to open a writeable store path using a read-only store). This is an alternative to #3155.
Closes #3147
TODO:
docs/user-guide/*.rst
changes/