@@ -1504,6 +1504,7 @@ def to_zarr(
15041504 region : Mapping [str , slice ] | None = None ,
15051505 safe_chunks : bool = True ,
15061506 storage_options : dict [str , str ] | None = None ,
1507+ zarr_version : int | None = None ,
15071508) -> backends .ZarrStore :
15081509 ...
15091510
@@ -1525,6 +1526,7 @@ def to_zarr(
15251526 region : Mapping [str , slice ] | None = None ,
15261527 safe_chunks : bool = True ,
15271528 storage_options : dict [str , str ] | None = None ,
1529+ zarr_version : int | None = None ,
15281530) -> Delayed :
15291531 ...
15301532
@@ -1543,6 +1545,7 @@ def to_zarr(
15431545 region : Mapping [str , slice ] | None = None ,
15441546 safe_chunks : bool = True ,
15451547 storage_options : dict [str , str ] | None = None ,
1548+ zarr_version : int | None = None ,
15461549) -> backends .ZarrStore | Delayed :
15471550 """This function creates an appropriate datastore for writing a dataset to
15481551 a zarr ztore
@@ -1609,6 +1612,13 @@ def to_zarr(
16091612 f"``region`` with to_zarr(), got { append_dim } in both"
16101613 )
16111614
1615+ if zarr_version is None :
1616+ # default to 2 if store doesn't specify it's version (e.g. a path)
1617+ zarr_version = int (getattr (store , "_store_version" , 2 ))
1618+
1619+ if consolidated is None and zarr_version > 2 :
1620+ consolidated = False
1621+
16121622 if mode == "r+" :
16131623 already_consolidated = consolidated
16141624 consolidate_on_close = False
@@ -1627,6 +1637,7 @@ def to_zarr(
16271637 write_region = region ,
16281638 safe_chunks = safe_chunks ,
16291639 stacklevel = 4 , # for Dataset.to_zarr()
1640+ zarr_version = zarr_version ,
16301641 )
16311642
16321643 if mode in ["a" , "r+" ]:
0 commit comments