-
-
Notifications
You must be signed in to change notification settings - Fork 379
Description
Zarr version
v2.14.1
Numcodecs version
v0.11.0
Python Version
3.11
Operating System
MacOs 13.2.1
Installation
using pip into a virtual environment
Description
creating a group using the Zarr.group convenience function with a fsspec.FSMap store fails as mode='w' is not passed to _normalize_store_arg.
This error stems from a change made in #1304 where a fsspec.FSMap is promoted to a fsspec.FSStore within the zarr.storage._normalize_store_arg_v2 function using the default mode of read only.
A fix for array creation (Zarr.create) due to a similar error was implemented with #1309
I propose introducing a similar change to the Zarr.group function, changing the first line of the function from store = _normalize_store_arg(store, zarr_version=zarr_version) to store = _normalize_store_arg(store, zarr_version=zarr_version, mode='w')
Steps to reproduce
The error can be reproduced with the following code
from fsspec.implementations.memory import MemoryFileSystem
import zarr
mfs = MemoryFileSystem()
fsmap = mfs.get_mapper("memory:/tmp/store")
group = zarr.group(store=fsmap)Console output
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/brandur/Documents/Repositories/zarr-python-dev/zarr/hierarchy.py", line 1355, in group
init_group(store, overwrite=overwrite, chunk_store=chunk_store,
File "/Users/brandur/Documents/Repositories/zarr-python-dev/zarr/storage.py", line 648, in init_group
_init_group_metadata(store=store, overwrite=overwrite, path=path,
File "/Users/brandur/Documents/Repositories/zarr-python-dev/zarr/storage.py", line 711, in _init_group_metadata
store[key] = store._metadata_class.encode_group_metadata(meta) # type: ignore
~~~~~^^^^^
File "/Users/brandur/Documents/Repositories/zarr-python-dev/zarr/storage.py", line 1410, in __setitem__
raise ReadOnlyError()
zarr.errors.ReadOnlyError: object is read-onlyAdditional output
No response