1515from abc import ABC , abstractmethod
1616from collections .abc import Sequence
1717from contextlib import nullcontext
18+ from tempfile import TemporaryDirectory
1819from typing import TYPE_CHECKING , Any
1920
2021import numpy as np
2122import torch
2223
23- from monai .utils import ensure_tuple_size , optional_import , require_pkg
24+ from monai .utils import ensure_tuple_size , get_package_version , optional_import , require_pkg , version_geq
2425
2526if TYPE_CHECKING :
2627 import zarr
@@ -233,7 +234,7 @@ def __init__(
233234 store : zarr .storage .Store | str = "merged.zarr" ,
234235 value_store : zarr .storage .Store | str | None = None ,
235236 count_store : zarr .storage .Store | str | None = None ,
236- compressor : str = "default" ,
237+ compressor : str | None = None ,
237238 value_compressor : str | None = None ,
238239 count_compressor : str | None = None ,
239240 chunks : Sequence [int ] | bool = True ,
@@ -246,8 +247,20 @@ def __init__(
246247 self .value_dtype = value_dtype
247248 self .count_dtype = count_dtype
248249 self .store = store
249- self .value_store = zarr .storage .TempStore () if value_store is None else value_store
250- self .count_store = zarr .storage .TempStore () if count_store is None else count_store
250+ if version_geq (get_package_version ("zarr" ), "3.0.0" ):
251+ if value_store is None :
252+ with TemporaryDirectory () as tmpdir :
253+ self .value_store = zarr .storage .LocalStore (tmpdir )
254+ else :
255+ self .value_store = value_store
256+ if count_store is None :
257+ with TemporaryDirectory () as tmpdir :
258+ self .count_store = zarr .storage .LocalStore (tmpdir )
259+ else :
260+ self .count_store = count_store
261+ else :
262+ self .value_store = zarr .storage .TempStore () if value_store is None else value_store
263+ self .count_store = zarr .storage .TempStore () if count_store is None else count_store
251264 self .chunks = chunks
252265 self .compressor = compressor
253266 self .value_compressor = value_compressor
0 commit comments