diff --git a/docs/release.rst b/docs/release.rst
index a10dd934..00a80242 100644
--- a/docs/release.rst
+++ b/docs/release.rst
@@ -4,6 +4,10 @@ Release notes
 Upcoming Release
 ----------------
 
+* Add intermediate step (using ``zipfile.ZipInfo`` object) to write
+  inside ``ZipStore`` to solve too restrictive permission issue.
+  By :user:`Raphael Dussin <raphaeldussin>`; :issue:`505`.
+
 * Add key normalization option for ``DirectoryStore``, ``NestedDirectoryStore``,
   ``TempStore``, and ``N5Store``.
   By :user:`James Bourbeau <jrbourbeau>`; :issue:`459`.
@@ -21,7 +25,7 @@ Upcoming Release
 * Upgrade dependencies in the test matrices and resolve a
   compatibility issue with testing against the Azure Storage
   Emulator. By :user:`alimanfoo`; :issue:`468`, :issue:`467`.
-  
+
 * Do not rename Blosc parameters in n5 backend and add `blocksize` parameter,
   compatible with n5-blosc. By :user:`axtimwalde`, :issue:`485`.
 
@@ -94,7 +98,7 @@ Enhancements
 ~~~~~~~~~~~~
 
 * New storage backend, backed by Azure Blob Storage, class :class:`zarr.storage.ABSStore`.
-  All data is stored as block blobs. By :user:`Shikhar Goenka <shikarsg>`, 
+  All data is stored as block blobs. By :user:`Shikhar Goenka <shikarsg>`,
   :user:`Tim Crone <tjcrone>` and :user:`Zain Patel <mzjp2>`; :issue:`345`.
 
 * Add "consolidated" metadata as an experimental feature: use
diff --git a/zarr/creation.py b/zarr/creation.py
index 632dd249..3958e2eb 100644
--- a/zarr/creation.py
+++ b/zarr/creation.py
@@ -132,7 +132,7 @@ def normalize_store_arg(store, clobber=False, default=dict):
         return default()
     elif isinstance(store, str):
         if store.endswith('.zip'):
-            mode = 'w' if clobber else 'a'
+            mode = 'w' if clobber else 'r'
             return ZipStore(store, mode=mode)
         elif store.endswith('.n5'):
             return N5Store(store)
diff --git a/zarr/storage.py b/zarr/storage.py
index 5a33940a..12154c29 100644
--- a/zarr/storage.py
+++ b/zarr/storage.py
@@ -33,6 +33,7 @@ from os import scandir
 from pickle import PicklingError
 from threading import Lock, RLock
 import uuid
+import time
 
 from numcodecs.compat import ensure_bytes, ensure_contiguous_ndarray
 from numcodecs.registry import codec_registry
@@ -1254,7 +1255,19 @@ class ZipStore(MutableMapping):
             err_read_only()
         value = ensure_contiguous_ndarray(value)
         with self.mutex:
-            self.zf.writestr(key, value)
+            # writestr(key, value) writes with default permissions from
+            # zipfile (600) that are too restrictive, build ZipInfo for
+            # the key to work around limitation
+            keyinfo = zipfile.ZipInfo(filename=key,
+                                      date_time=time.localtime(time.time())[:6])
+            keyinfo.compress_type = self.compression
+            if keyinfo.filename[-1] == os.sep:
+                keyinfo.external_attr = 0o40775 << 16   # drwxrwxr-x
+                keyinfo.external_attr |= 0x10           # MS-DOS directory flag
+            else:
+                keyinfo.external_attr = 0o644 << 16     # ?rw-r--r--
+
+            self.zf.writestr(keyinfo, value)
 
     def __delitem__(self, key):
         raise NotImplementedError

permission problem in zarr.ZipStore
#### Minimal, reproducible code sample, a copy-pastable example if possible

```python
import numpy as np
import pandas as pd
import xarray as xr
import zarr
import os

# create dataset from xarray documentation
temp = 15 + 8 * np.random.randn(2, 2, 3)
precip = 10 * np.random.rand(2, 2, 3)
lon = [[-99.83, -99.32], [-99.79, -99.23]]
lat = [[42.25, 42.21], [42.63, 42.59]]
ds = xr.Dataset({'temperature': (['x', 'y', 'time'],  temp),
                 'precipitation': (['x', 'y', 'time'], precip)},
                coords={'lon': (['x', 'y'], lon),
                        'lat': (['x', 'y'], lat),
                        'time': pd.date_range('2014-09-06', periods=3),
                        'reference_time': pd.Timestamp('2014-09-05')})


if os.path.isfile('example.zip'):
    print('removing example file')
    os.system('rm example.zip')

zipstore = zarr.ZipStore('example.zip', mode='w')
ds.to_zarr(zipstore, mode='w')
zipstore.close()


os.system('unzip -o example.zip')
os.system('ls -laR')

```

#### Problem description

The permission problem fixed by #493 for DirectoryStore remains in ZipStore. I looked at the zarr code and fix but couldn't figure out how to make a similar fix. Ideas welcome! 


#### Version and installation information

* zarr = 2.3.3.dev30
* numcodecs = 0.6.3
* python = 3.7.3
* Linux Red Hat
* zarr installed from source (hash e6667aa3)

diff --git a/zarr/tests/test_storage.py b/zarr/tests/test_storage.py
index 5488eeab..cd6a43b0 100644
--- a/zarr/tests/test_storage.py
+++ b/zarr/tests/test_storage.py
@@ -9,6 +9,7 @@ import tempfile
 import unittest
 from contextlib import contextmanager
 from pickle import PicklingError
+from zipfile import ZipFile
 
 import numpy as np
 import pytest
@@ -947,6 +948,23 @@ class TestZipStore(StoreTests, unittest.TestCase):
         with pytest.raises(NotImplementedError):
             store.popitem()
 
+    def test_permissions(self):
+        store = ZipStore('data/store.zip', mode='w')
+        store['foo'] = b'bar'
+        store['baz/'] = b''
+        store.flush()
+        store.close()
+        z = ZipFile('data/store.zip', 'r')
+        info = z.getinfo('foo')
+        perm = oct(info.external_attr >> 16)
+        assert perm == '0o644'
+        info = z.getinfo('baz/')
+        perm = oct(info.external_attr >> 16)
+        # only for posix platforms
+        if os.name == 'posix':
+            assert perm == '0o40775'
+        z.close()
+
 
 class TestDBMStore(StoreTests, unittest.TestCase):
 

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
asciitree==0.3.3
attrs @ file:///croot/attrs_1668696182826/work
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
entrypoints==0.4
execnet==2.0.2
fasteners==0.19
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1648562407465/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
numcodecs==0.10.2
numpy==1.21.6
packaging @ file:///croot/packaging_1671697413597/work
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pytest==7.1.2
pytest-asyncio==0.21.2
pytest-cov==4.1.0
pytest-mock==3.11.1
pytest-xdist==3.5.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typing_extensions @ file:///croot/typing_extensions_1669924550328/work
-e git+https://github.com/zarr-developers/zarr-python.git@be29d3659daf83b8ff2b119ac98d97c47324706c#egg=zarr
zipp @ file:///croot/zipp_1672387121353/work

name: zarr-python
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib-metadata=4.11.3=py37h06a4308_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - typing_extensions=4.4.0=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - asciitree==0.3.3
      - coverage==7.2.7
      - entrypoints==0.4
      - execnet==2.0.2
      - fasteners==0.19
      - numcodecs==0.10.2
      - numpy==1.21.6
      - pytest-asyncio==0.21.2
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - pytest-xdist==3.5.0
prefix: /opt/conda/envs/zarr-python

zarr/tests/test_storage.py::TestZipStore::test_permissions
zarr/tests/test_storage.py::TestMappingStore::test_clear zarr/tests/test_storage.py::TestMappingStore::test_get_set_del_contains zarr/tests/test_storage.py::TestMappingStore::test_getsize zarr/tests/test_storage.py::TestMappingStore::test_hierarchy zarr/tests/test_storage.py::TestMappingStore::test_init_array zarr/tests/test_storage.py::TestMappingStore::test_init_array_compat zarr/tests/test_storage.py::TestMappingStore::test_init_array_overwrite zarr/tests/test_storage.py::TestMappingStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestMappingStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestMappingStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestMappingStore::test_init_array_path zarr/tests/test_storage.py::TestMappingStore::test_init_group zarr/tests/test_storage.py::TestMappingStore::test_init_group_overwrite zarr/tests/test_storage.py::TestMappingStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestMappingStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestMappingStore::test_iterators zarr/tests/test_storage.py::TestMappingStore::test_pickle zarr/tests/test_storage.py::TestMappingStore::test_pop zarr/tests/test_storage.py::TestMappingStore::test_popitem zarr/tests/test_storage.py::TestMappingStore::test_set_invalid_content zarr/tests/test_storage.py::TestMappingStore::test_update zarr/tests/test_storage.py::TestMappingStore::test_writeable_values zarr/tests/test_storage.py::TestMemoryStore::test_clear zarr/tests/test_storage.py::TestMemoryStore::test_get_set_del_contains zarr/tests/test_storage.py::TestMemoryStore::test_getsize zarr/tests/test_storage.py::TestMemoryStore::test_hierarchy zarr/tests/test_storage.py::TestMemoryStore::test_init_array zarr/tests/test_storage.py::TestMemoryStore::test_init_array_compat zarr/tests/test_storage.py::TestMemoryStore::test_init_array_overwrite zarr/tests/test_storage.py::TestMemoryStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestMemoryStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestMemoryStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestMemoryStore::test_init_array_path zarr/tests/test_storage.py::TestMemoryStore::test_init_group zarr/tests/test_storage.py::TestMemoryStore::test_init_group_overwrite zarr/tests/test_storage.py::TestMemoryStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestMemoryStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestMemoryStore::test_iterators zarr/tests/test_storage.py::TestMemoryStore::test_pickle zarr/tests/test_storage.py::TestMemoryStore::test_pop zarr/tests/test_storage.py::TestMemoryStore::test_popitem zarr/tests/test_storage.py::TestMemoryStore::test_set_invalid_content zarr/tests/test_storage.py::TestMemoryStore::test_setdel zarr/tests/test_storage.py::TestMemoryStore::test_store_contains_bytes zarr/tests/test_storage.py::TestMemoryStore::test_update zarr/tests/test_storage.py::TestMemoryStore::test_writeable_values zarr/tests/test_storage.py::TestDictStore::test_clear zarr/tests/test_storage.py::TestDictStore::test_deprecated zarr/tests/test_storage.py::TestDictStore::test_get_set_del_contains zarr/tests/test_storage.py::TestDictStore::test_getsize zarr/tests/test_storage.py::TestDictStore::test_hierarchy zarr/tests/test_storage.py::TestDictStore::test_init_array zarr/tests/test_storage.py::TestDictStore::test_init_array_compat zarr/tests/test_storage.py::TestDictStore::test_init_array_overwrite zarr/tests/test_storage.py::TestDictStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestDictStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestDictStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestDictStore::test_init_array_path zarr/tests/test_storage.py::TestDictStore::test_init_group zarr/tests/test_storage.py::TestDictStore::test_init_group_overwrite zarr/tests/test_storage.py::TestDictStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestDictStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestDictStore::test_iterators zarr/tests/test_storage.py::TestDictStore::test_pickle zarr/tests/test_storage.py::TestDictStore::test_pop zarr/tests/test_storage.py::TestDictStore::test_popitem zarr/tests/test_storage.py::TestDictStore::test_set_invalid_content zarr/tests/test_storage.py::TestDictStore::test_update zarr/tests/test_storage.py::TestDictStore::test_writeable_values zarr/tests/test_storage.py::TestDirectoryStore::test_clear zarr/tests/test_storage.py::TestDirectoryStore::test_filesystem_path zarr/tests/test_storage.py::TestDirectoryStore::test_get_set_del_contains zarr/tests/test_storage.py::TestDirectoryStore::test_getsize zarr/tests/test_storage.py::TestDirectoryStore::test_hierarchy zarr/tests/test_storage.py::TestDirectoryStore::test_init_array zarr/tests/test_storage.py::TestDirectoryStore::test_init_array_compat zarr/tests/test_storage.py::TestDirectoryStore::test_init_array_overwrite zarr/tests/test_storage.py::TestDirectoryStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestDirectoryStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestDirectoryStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestDirectoryStore::test_init_array_path zarr/tests/test_storage.py::TestDirectoryStore::test_init_group zarr/tests/test_storage.py::TestDirectoryStore::test_init_group_overwrite zarr/tests/test_storage.py::TestDirectoryStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestDirectoryStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestDirectoryStore::test_iterators zarr/tests/test_storage.py::TestDirectoryStore::test_normalize_keys zarr/tests/test_storage.py::TestDirectoryStore::test_pickle zarr/tests/test_storage.py::TestDirectoryStore::test_pickle_ext zarr/tests/test_storage.py::TestDirectoryStore::test_pop zarr/tests/test_storage.py::TestDirectoryStore::test_popitem zarr/tests/test_storage.py::TestDirectoryStore::test_set_invalid_content zarr/tests/test_storage.py::TestDirectoryStore::test_setdel zarr/tests/test_storage.py::TestDirectoryStore::test_update zarr/tests/test_storage.py::TestDirectoryStore::test_writeable_values zarr/tests/test_storage.py::TestNestedDirectoryStore::test_chunk_nesting zarr/tests/test_storage.py::TestNestedDirectoryStore::test_clear zarr/tests/test_storage.py::TestNestedDirectoryStore::test_filesystem_path zarr/tests/test_storage.py::TestNestedDirectoryStore::test_get_set_del_contains zarr/tests/test_storage.py::TestNestedDirectoryStore::test_getsize zarr/tests/test_storage.py::TestNestedDirectoryStore::test_hierarchy zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array_compat zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array_overwrite zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_array_path zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_group zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_group_overwrite zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestNestedDirectoryStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestNestedDirectoryStore::test_iterators zarr/tests/test_storage.py::TestNestedDirectoryStore::test_normalize_keys zarr/tests/test_storage.py::TestNestedDirectoryStore::test_pickle zarr/tests/test_storage.py::TestNestedDirectoryStore::test_pickle_ext zarr/tests/test_storage.py::TestNestedDirectoryStore::test_pop zarr/tests/test_storage.py::TestNestedDirectoryStore::test_popitem zarr/tests/test_storage.py::TestNestedDirectoryStore::test_set_invalid_content zarr/tests/test_storage.py::TestNestedDirectoryStore::test_setdel zarr/tests/test_storage.py::TestNestedDirectoryStore::test_update zarr/tests/test_storage.py::TestNestedDirectoryStore::test_writeable_values zarr/tests/test_storage.py::TestN5Store::test_chunk_nesting zarr/tests/test_storage.py::TestN5Store::test_clear zarr/tests/test_storage.py::TestN5Store::test_equal zarr/tests/test_storage.py::TestN5Store::test_filesystem_path zarr/tests/test_storage.py::TestN5Store::test_filters zarr/tests/test_storage.py::TestN5Store::test_get_set_del_contains zarr/tests/test_storage.py::TestN5Store::test_getsize zarr/tests/test_storage.py::TestN5Store::test_hierarchy zarr/tests/test_storage.py::TestN5Store::test_init_array zarr/tests/test_storage.py::TestN5Store::test_init_array_compat zarr/tests/test_storage.py::TestN5Store::test_init_array_overwrite zarr/tests/test_storage.py::TestN5Store::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestN5Store::test_init_array_overwrite_group zarr/tests/test_storage.py::TestN5Store::test_init_array_overwrite_path zarr/tests/test_storage.py::TestN5Store::test_init_array_path zarr/tests/test_storage.py::TestN5Store::test_init_group zarr/tests/test_storage.py::TestN5Store::test_init_group_overwrite zarr/tests/test_storage.py::TestN5Store::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestN5Store::test_init_group_overwrite_path zarr/tests/test_storage.py::TestN5Store::test_iterators zarr/tests/test_storage.py::TestN5Store::test_normalize_keys zarr/tests/test_storage.py::TestN5Store::test_pickle zarr/tests/test_storage.py::TestN5Store::test_pickle_ext zarr/tests/test_storage.py::TestN5Store::test_pop zarr/tests/test_storage.py::TestN5Store::test_popitem zarr/tests/test_storage.py::TestN5Store::test_set_invalid_content zarr/tests/test_storage.py::TestN5Store::test_setdel zarr/tests/test_storage.py::TestN5Store::test_update zarr/tests/test_storage.py::TestN5Store::test_writeable_values zarr/tests/test_storage.py::TestTempStore::test_clear zarr/tests/test_storage.py::TestTempStore::test_get_set_del_contains zarr/tests/test_storage.py::TestTempStore::test_getsize zarr/tests/test_storage.py::TestTempStore::test_hierarchy zarr/tests/test_storage.py::TestTempStore::test_init_array zarr/tests/test_storage.py::TestTempStore::test_init_array_compat zarr/tests/test_storage.py::TestTempStore::test_init_array_overwrite zarr/tests/test_storage.py::TestTempStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestTempStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestTempStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestTempStore::test_init_array_path zarr/tests/test_storage.py::TestTempStore::test_init_group zarr/tests/test_storage.py::TestTempStore::test_init_group_overwrite zarr/tests/test_storage.py::TestTempStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestTempStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestTempStore::test_iterators zarr/tests/test_storage.py::TestTempStore::test_pickle zarr/tests/test_storage.py::TestTempStore::test_pop zarr/tests/test_storage.py::TestTempStore::test_popitem zarr/tests/test_storage.py::TestTempStore::test_set_invalid_content zarr/tests/test_storage.py::TestTempStore::test_setdel zarr/tests/test_storage.py::TestTempStore::test_update zarr/tests/test_storage.py::TestTempStore::test_writeable_values zarr/tests/test_storage.py::TestZipStore::test_clear zarr/tests/test_storage.py::TestZipStore::test_context_manager zarr/tests/test_storage.py::TestZipStore::test_flush zarr/tests/test_storage.py::TestZipStore::test_get_set_del_contains zarr/tests/test_storage.py::TestZipStore::test_getsize zarr/tests/test_storage.py::TestZipStore::test_hierarchy zarr/tests/test_storage.py::TestZipStore::test_init_array zarr/tests/test_storage.py::TestZipStore::test_init_array_compat zarr/tests/test_storage.py::TestZipStore::test_init_array_overwrite zarr/tests/test_storage.py::TestZipStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestZipStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestZipStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestZipStore::test_init_array_path zarr/tests/test_storage.py::TestZipStore::test_init_group zarr/tests/test_storage.py::TestZipStore::test_init_group_overwrite zarr/tests/test_storage.py::TestZipStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestZipStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestZipStore::test_iterators zarr/tests/test_storage.py::TestZipStore::test_mode zarr/tests/test_storage.py::TestZipStore::test_pickle zarr/tests/test_storage.py::TestZipStore::test_pop zarr/tests/test_storage.py::TestZipStore::test_popitem zarr/tests/test_storage.py::TestZipStore::test_set_invalid_content zarr/tests/test_storage.py::TestZipStore::test_update zarr/tests/test_storage.py::TestZipStore::test_writeable_values zarr/tests/test_storage.py::TestDBMStore::test_clear zarr/tests/test_storage.py::TestDBMStore::test_context_manager zarr/tests/test_storage.py::TestDBMStore::test_get_set_del_contains zarr/tests/test_storage.py::TestDBMStore::test_getsize zarr/tests/test_storage.py::TestDBMStore::test_hierarchy zarr/tests/test_storage.py::TestDBMStore::test_init_array zarr/tests/test_storage.py::TestDBMStore::test_init_array_compat zarr/tests/test_storage.py::TestDBMStore::test_init_array_overwrite zarr/tests/test_storage.py::TestDBMStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestDBMStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestDBMStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestDBMStore::test_init_array_path zarr/tests/test_storage.py::TestDBMStore::test_init_group zarr/tests/test_storage.py::TestDBMStore::test_init_group_overwrite zarr/tests/test_storage.py::TestDBMStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestDBMStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestDBMStore::test_iterators zarr/tests/test_storage.py::TestDBMStore::test_pickle zarr/tests/test_storage.py::TestDBMStore::test_pop zarr/tests/test_storage.py::TestDBMStore::test_popitem zarr/tests/test_storage.py::TestDBMStore::test_set_invalid_content zarr/tests/test_storage.py::TestDBMStore::test_update zarr/tests/test_storage.py::TestDBMStore::test_writeable_values zarr/tests/test_storage.py::TestDBMStoreDumb::test_clear zarr/tests/test_storage.py::TestDBMStoreDumb::test_context_manager zarr/tests/test_storage.py::TestDBMStoreDumb::test_get_set_del_contains zarr/tests/test_storage.py::TestDBMStoreDumb::test_getsize zarr/tests/test_storage.py::TestDBMStoreDumb::test_hierarchy zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array_compat zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array_overwrite zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array_overwrite_group zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array_overwrite_path zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_array_path zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_group zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_group_overwrite zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestDBMStoreDumb::test_init_group_overwrite_path zarr/tests/test_storage.py::TestDBMStoreDumb::test_iterators zarr/tests/test_storage.py::TestDBMStoreDumb::test_pickle zarr/tests/test_storage.py::TestDBMStoreDumb::test_pop zarr/tests/test_storage.py::TestDBMStoreDumb::test_popitem zarr/tests/test_storage.py::TestDBMStoreDumb::test_set_invalid_content zarr/tests/test_storage.py::TestDBMStoreDumb::test_update zarr/tests/test_storage.py::TestDBMStoreDumb::test_writeable_values zarr/tests/test_storage.py::TestSQLiteStore::test_clear zarr/tests/test_storage.py::TestSQLiteStore::test_get_set_del_contains zarr/tests/test_storage.py::TestSQLiteStore::test_getsize zarr/tests/test_storage.py::TestSQLiteStore::test_hierarchy zarr/tests/test_storage.py::TestSQLiteStore::test_init_array zarr/tests/test_storage.py::TestSQLiteStore::test_init_array_compat zarr/tests/test_storage.py::TestSQLiteStore::test_init_array_overwrite zarr/tests/test_storage.py::TestSQLiteStore::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestSQLiteStore::test_init_array_overwrite_group zarr/tests/test_storage.py::TestSQLiteStore::test_init_array_overwrite_path zarr/tests/test_storage.py::TestSQLiteStore::test_init_array_path zarr/tests/test_storage.py::TestSQLiteStore::test_init_group zarr/tests/test_storage.py::TestSQLiteStore::test_init_group_overwrite zarr/tests/test_storage.py::TestSQLiteStore::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestSQLiteStore::test_init_group_overwrite_path zarr/tests/test_storage.py::TestSQLiteStore::test_iterators zarr/tests/test_storage.py::TestSQLiteStore::test_pickle zarr/tests/test_storage.py::TestSQLiteStore::test_pop zarr/tests/test_storage.py::TestSQLiteStore::test_popitem zarr/tests/test_storage.py::TestSQLiteStore::test_set_invalid_content zarr/tests/test_storage.py::TestSQLiteStore::test_update zarr/tests/test_storage.py::TestSQLiteStore::test_writeable_values zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_clear zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_get_set_del_contains zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_getsize zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_hierarchy zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array_compat zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array_overwrite zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array_overwrite_group zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array_overwrite_path zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_array_path zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_group zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_group_overwrite zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_init_group_overwrite_path zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_iterators zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_pickle zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_pop zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_popitem zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_set_invalid_content zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_update zarr/tests/test_storage.py::TestSQLiteStoreInMemory::test_writeable_values zarr/tests/test_storage.py::TestLRUStoreCache::test_cache_keys zarr/tests/test_storage.py::TestLRUStoreCache::test_cache_values_no_max_size zarr/tests/test_storage.py::TestLRUStoreCache::test_cache_values_with_max_size zarr/tests/test_storage.py::TestLRUStoreCache::test_clear zarr/tests/test_storage.py::TestLRUStoreCache::test_get_set_del_contains zarr/tests/test_storage.py::TestLRUStoreCache::test_getsize zarr/tests/test_storage.py::TestLRUStoreCache::test_hierarchy zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array_compat zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array_overwrite zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array_overwrite_chunk_store zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array_overwrite_group zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array_overwrite_path zarr/tests/test_storage.py::TestLRUStoreCache::test_init_array_path zarr/tests/test_storage.py::TestLRUStoreCache::test_init_group zarr/tests/test_storage.py::TestLRUStoreCache::test_init_group_overwrite zarr/tests/test_storage.py::TestLRUStoreCache::test_init_group_overwrite_chunk_store zarr/tests/test_storage.py::TestLRUStoreCache::test_init_group_overwrite_path zarr/tests/test_storage.py::TestLRUStoreCache::test_iterators zarr/tests/test_storage.py::TestLRUStoreCache::test_pickle zarr/tests/test_storage.py::TestLRUStoreCache::test_pop zarr/tests/test_storage.py::TestLRUStoreCache::test_popitem zarr/tests/test_storage.py::TestLRUStoreCache::test_set_invalid_content zarr/tests/test_storage.py::TestLRUStoreCache::test_update zarr/tests/test_storage.py::TestLRUStoreCache::test_writeable_values zarr/tests/test_storage.py::test_getsize zarr/tests/test_storage.py::test_migrate_1to2 zarr/tests/test_storage.py::test_format_compatibility zarr/tests/test_storage.py::TestConsolidatedMetadataStore::test_bad_format zarr/tests/test_storage.py::TestConsolidatedMetadataStore::test_read_write
docs/release.rst zarr/creation.py zarr/storage.py
docs/release.rst zarr/creation.py zarr/storage.py