9
9
10
10
from zarr .core .array import Array , AsyncArray
11
11
from zarr .core .common import JSON , AccessModeLiteral , ChunkCoords , MemoryOrder , ZarrFormat
12
+ from zarr .core .config import config
12
13
from zarr .core .group import AsyncGroup
13
14
from zarr .core .metadata .v2 import ArrayV2Metadata
14
15
from zarr .core .metadata .v3 import ArrayV3Metadata
@@ -126,8 +127,7 @@ def _handle_zarr_version_or_format(
126
127
127
128
def _default_zarr_version () -> ZarrFormat :
128
129
"""return the default zarr_version"""
129
- # TODO: set default value from config
130
- return 3
130
+ return cast (ZarrFormat , int (config .get ("default_zarr_version" , 3 )))
131
131
132
132
133
133
async def consolidate_metadata (* args : Any , ** kwargs : Any ) -> AsyncGroup :
@@ -337,7 +337,10 @@ async def save_group(
337
337
kwargs
338
338
NumPy arrays with data to save.
339
339
"""
340
- zarr_format = _handle_zarr_version_or_format (zarr_version = zarr_version , zarr_format = zarr_format )
340
+ zarr_format = (
341
+ _handle_zarr_version_or_format (zarr_version = zarr_version , zarr_format = zarr_format )
342
+ or _default_zarr_version ()
343
+ )
341
344
342
345
if len (args ) == 0 and len (kwargs ) == 0 :
343
346
raise ValueError ("at least one array must be provided" )
@@ -448,10 +451,7 @@ async def group(
448
451
The new group.
449
452
"""
450
453
451
- zarr_format = (
452
- _handle_zarr_version_or_format (zarr_version = zarr_version , zarr_format = zarr_format )
453
- or _default_zarr_version ()
454
- )
454
+ zarr_format = _handle_zarr_version_or_format (zarr_version = zarr_version , zarr_format = zarr_format )
455
455
456
456
store_path = await make_store_path (store )
457
457
if path is not None :
@@ -474,7 +474,7 @@ async def group(
474
474
except (KeyError , FileNotFoundError ):
475
475
return await AsyncGroup .create (
476
476
store = store_path ,
477
- zarr_format = zarr_format ,
477
+ zarr_format = zarr_format or _default_zarr_version () ,
478
478
exists_ok = overwrite ,
479
479
attributes = attributes ,
480
480
)
@@ -483,7 +483,7 @@ async def group(
483
483
async def open_group (
484
484
* , # Note: this is a change from v2
485
485
store : StoreLike | None = None ,
486
- mode : AccessModeLiteral | None = None , # not used
486
+ mode : AccessModeLiteral | None = None ,
487
487
cache_attrs : bool | None = None , # not used, default changed
488
488
synchronizer : Any = None , # not used
489
489
path : str | None = None ,
@@ -538,10 +538,7 @@ async def open_group(
538
538
The new group.
539
539
"""
540
540
541
- zarr_format = (
542
- _handle_zarr_version_or_format (zarr_version = zarr_version , zarr_format = zarr_format )
543
- or _default_zarr_version ()
544
- )
541
+ zarr_format = _handle_zarr_version_or_format (zarr_version = zarr_version , zarr_format = zarr_format )
545
542
546
543
if cache_attrs is not None :
547
544
warnings .warn ("cache_attrs is not yet implemented" , RuntimeWarning , stacklevel = 2 )
@@ -565,7 +562,10 @@ async def open_group(
565
562
return await AsyncGroup .open (store_path , zarr_format = zarr_format )
566
563
except (KeyError , FileNotFoundError ):
567
564
return await AsyncGroup .create (
568
- store_path , zarr_format = zarr_format , exists_ok = True , attributes = attributes
565
+ store_path ,
566
+ zarr_format = zarr_format or _default_zarr_version (),
567
+ exists_ok = True ,
568
+ attributes = attributes ,
569
569
)
570
570
571
571
@@ -687,7 +687,7 @@ async def create(
687
687
688
688
if zarr_format == 2 and chunks is None :
689
689
chunks = shape
690
- if zarr_format == 3 and chunk_shape is None :
690
+ elif zarr_format == 3 and chunk_shape is None :
691
691
if chunks is not None :
692
692
chunk_shape = chunks
693
693
chunks = None
@@ -908,7 +908,7 @@ async def open_array(
908
908
if store_path .store .mode .create :
909
909
return await create (
910
910
store = store_path ,
911
- zarr_format = zarr_format ,
911
+ zarr_format = zarr_format or _default_zarr_version () ,
912
912
overwrite = store_path .store .mode .overwrite ,
913
913
** kwargs ,
914
914
)
0 commit comments