66
77import shutil
88from pathlib import Path
9+ from typing import Any
910
1011from spatialdata import SpatialData
1112from xarray import DataArray
1213
13- from spatialdata_io import image # type: ignore[attr-defined]
14+ from spatialdata_io import image
1415
1516# =============================================================================
1617# CONFIGURATION - Edit these paths to match your setup
@@ -50,13 +51,15 @@ class IOBenchmarkImage:
5051 ]
5152 param_names = ["scale_factors" , "use_tiff_memmap" , "chunks" ]
5253
53- def setup (self , * _ ) -> None :
54+ def setup (self , * _ : Any ) -> None :
5455 """Set up paths for benchmarking."""
5556 self .path_read , self .path_write = get_paths ()
5657 if self .path_write .exists ():
5758 shutil .rmtree (self .path_write )
5859
59- def _convert_image (self , scale_factors , use_tiff_memmap , chunks ) -> SpatialData :
60+ def _convert_image (
61+ self , scale_factors : list [int ] | None , use_tiff_memmap : bool , chunks : tuple [int , int ]
62+ ) -> SpatialData :
6063 """Read image data with specified parameters."""
6164 im = image (
6265 input = self .path_read ,
@@ -79,12 +82,12 @@ def _convert_image(self, scale_factors, use_tiff_memmap, chunks) -> SpatialData:
7982 assert sdata ["image" ].chunksizes ["y" ] == chunks [1 ]
8083 return sdata
8184
82- def time_io (self , scale_factors , use_tiff_memmap , chunks ) -> None :
85+ def time_io (self , scale_factors : list [ int ] | None , use_tiff_memmap : bool , chunks : tuple [ int , int ] ) -> None :
8386 """Walltime for data parsing."""
8487 sdata = self ._convert_image (scale_factors , use_tiff_memmap , chunks )
8588 sdata .write (self .path_write )
8689
87- def peakmem_io (self , scale_factors , use_tiff_memmap , chunks ) -> None :
90+ def peakmem_io (self , scale_factors : list [ int ] | None , use_tiff_memmap : bool , chunks : tuple [ int , int ] ) -> None :
8891 """Peak memory for data parsing."""
8992 sdata = self ._convert_image (scale_factors , use_tiff_memmap , chunks )
9093 sdata .write (self .path_write )
0 commit comments