From 381111b089898bfcc7f9400eac7820b84bc1fa40 Mon Sep 17 00:00:00 2001 From: James Bourbeau Date: Fri, 23 Dec 2022 12:18:10 -0600 Subject: [PATCH 1/3] Ensure zarr.create uses writeable mode --- zarr/creation.py | 2 +- zarr/tests/test_creation.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/zarr/creation.py b/zarr/creation.py index 00d2c4003..cc191e373 100644 --- a/zarr/creation.py +++ b/zarr/creation.py @@ -145,7 +145,7 @@ def create(shape, chunks=True, dtype=None, compressor='default', zarr_version = getattr(chunk_store, '_store_version', DEFAULT_ZARR_VERSION) # handle polymorphic store arg - store = normalize_store_arg(store, zarr_version=zarr_version) + store = normalize_store_arg(store, zarr_version=zarr_version, mode="w") zarr_version = getattr(store, '_store_version', DEFAULT_ZARR_VERSION) # API compatibility with h5py diff --git a/zarr/tests/test_creation.py b/zarr/tests/test_creation.py index 0f12fc561..4c9c29273 100644 --- a/zarr/tests/test_creation.py +++ b/zarr/tests/test_creation.py @@ -19,7 +19,7 @@ from zarr._storage.store import v3_api_available from zarr._storage.v3 import DirectoryStoreV3, KVStoreV3 from zarr.sync import ThreadSynchronizer -from zarr.tests.util import mktemp +from zarr.tests.util import mktemp, have_fsspec _VERSIONS = ((None, 2, 3) if v3_api_available else (None, 2)) _VERSIONS2 = ((2, 3) if v3_api_available else (2, )) @@ -429,6 +429,18 @@ def test_create_in_dict(zarr_version, at_root): assert isinstance(a.store, expected_store_type) +@pytest.mark.skipif(have_fsspec is False, reason="needs fsspec") +@pytest.mark.parametrize('zarr_version', _VERSIONS) +@pytest.mark.parametrize('at_root', [False, True]) +def test_create_writeable_mode(zarr_version, at_root, tmp_path): + # Regression test for https://github.com/zarr-developers/zarr-python/issues/1306 + import fsspec + kwargs = _init_creation_kwargs(zarr_version, at_root) + store = fsspec.get_mapper(str(tmp_path)) + z = create(100, store=store, **kwargs) + assert z.store.map == store + + @pytest.mark.parametrize('zarr_version', _VERSIONS) @pytest.mark.parametrize('at_root', [False, True]) def test_empty_like(zarr_version, at_root): From 19b79d0319c914aed5de015dc73f4964c910b2a4 Mon Sep 17 00:00:00 2001 From: Sanket Verma Date: Mon, 16 Jan 2023 20:41:06 +0530 Subject: [PATCH 2/3] Update release.rst Added release notes for [#1309](https://github.com/zarr-developers/zarr-python/pull/1309) --- docs/release.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/release.rst b/docs/release.rst index 7ffd75169..08e9d4003 100644 --- a/docs/release.rst +++ b/docs/release.rst @@ -16,6 +16,15 @@ Release notes .. _release_2.13.4: +2.13.5 +------ + +Enhancements +~~~~~~~~~~~~ + +* Ensure ``zarr.create`` uses writeable mode. + By :user:`James Bourbeau ` :issue:`1309`. + 2.13.4 ------ From 362a2ab5112debf956acd301a8fa0a5a8377252a Mon Sep 17 00:00:00 2001 From: Josh Moore Date: Mon, 16 Jan 2023 16:35:14 +0100 Subject: [PATCH 3/3] Switch to bug fix --- docs/release.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/release.rst b/docs/release.rst index 08e9d4003..d6692a01d 100644 --- a/docs/release.rst +++ b/docs/release.rst @@ -19,10 +19,10 @@ Release notes 2.13.5 ------ -Enhancements -~~~~~~~~~~~~ +Bug fixes +~~~~~~~~~ -* Ensure ``zarr.create`` uses writeable mode. +* Ensure ``zarr.create`` uses writeable mode to fix issue with :issue:`1304`. By :user:`James Bourbeau ` :issue:`1309`. 2.13.4