Open tomwhite opened 4 hours ago
I am more and more certain that we should move away from functions with ambiguous semantics like open_array
, which tries to handle both creating new arrays and retrieving existing ones. See #2466. This wouldn't solve the acute bug you found, but it could prevent future bugs. I'm working on a PR now that expands store testing (#2447 ), I can see I can squash your bug there.
Thanks for looking at this @d-v-b!
The semantics I want are 1) write the metadata for a new Zarr array, followed by 2) write chunks to the array in parallel from multiple processes. I've been using mode "w-" for 1 (write, fail if exists), and "r+" for 2 (read or write, fail if doesn't exist).
Zarr version
v3.0.0-beta.2
Numcodecs version
0.14.0
Python Version
3.11
Operating System
Mac
Installation
pip
Description
Mode
r+
does not fail properly when the store doesn't exist, and will try to create the array when callingopen_array
. In the api doc for open it is defined as "means read/write (must exist)". This is a regression and was introduced in #2442.Steps to reproduce
This should fail with a
FileNotFoundError
and not try to create the store if it doesn't exist.Additional output
No response