You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
...
File "/Users/bennettd/Library/Caches/uv/archive-v0/Dt_Vb9Xzyh8CGtlKxZyUO/lib/python3.11/site-packages/zarr/storage/_local.py", line 62, in _put
with path.open(mode=mode) as f:
^^^^^^^^^^^^^^^^^^^^
File "/Users/bennettd/.pyenv/versions/3.11.9/lib/python3.11/pathlib.py", line 1044, in open
return io.open(self, mode, buffering, encoding, errors, newline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
IsADirectoryError: [Errno 21] Is a directory: 'data/v2_array_example.zarr/0'
This is a simple bug, but it also reveals the meaning of "overwrite" is not clear.
I would expect creating an array, then creating an array at the same path withoverwrite=True to completely remove the pre-existing array.
I'm not sure I would expect overwrite=True to erase absolutely everything prefixed underneath the array. So if I had saved cat.jpgin the same directory as my array, I might not expect that to get erased.
It might be reasonable to define "create_x(overwrite=True)" to mean "ensure that all keys necessary to create object x are available, but no other keys will be touched". But issuing a huge volume of delete_object requests against metered cloud storage could be much more expensive than a simple "delete_prefix". I don't know much about this, someone good at s3 billing should help here.
Curious to hear what other people think about what "overwrite" should mean here.
The text was updated successfully, but these errors were encountered:
I feel that we should be clearing chunks whenever overwrite is used. Calling Store.delete_dir whenever overwite is called seems like the prudent action.
MRE
Traceback (the latter bit):
This is a simple bug, but it also reveals the meaning of "overwrite" is not clear.
overwrite=True
to completely remove the pre-existing array.overwrite=True
to erase absolutely everything prefixed underneath the array. So if I had savedcat.jpg
in the same directory as my array, I might not expect that to get erased.It might be reasonable to define "create_x(overwrite=True)" to mean "ensure that all keys necessary to create object x are available, but no other keys will be touched". But issuing a huge volume of
delete_object
requests against metered cloud storage could be much more expensive than a simple "delete_prefix". I don't know much about this, someone good at s3 billing should help here.Curious to hear what other people think about what "overwrite" should mean here.
The text was updated successfully, but these errors were encountered: