1010from typing import Any , TypeAlias
1111
1212import anndata
13+ import pooch
1314import spatialdata as sd
1415from anndata import AnnData
1516from scanpy import logging as logg
1617from scanpy import read
17- from scanpy ._utils import check_presence_download
1818
1919from squidpy .im import ImageContainer
2020
@@ -170,7 +170,7 @@ def _create_signature(self) -> Signature:
170170 )
171171
172172 def _download (self , fpath : PathLike , backup_url : str , ** kwargs : Any ) -> Any :
173- check_presence_download ( Path (fpath ), backup_url )
173+ download_file ( filename = Path (fpath ), backup_url = backup_url )
174174
175175 img = ImageContainer ()
176176 img .add_img (fpath , layer = "image" , library_id = self .library_id , ** kwargs )
@@ -204,10 +204,7 @@ def _get_zipped_dataset(folderpath: Path, dataset_name: str, figshare_id: str) -
204204 if not download_zip .exists ():
205205 logg .info (f"Downloading Visium H&E SpatialData to { download_zip } " )
206206 try :
207- check_presence_download (
208- filename = download_zip ,
209- backup_url = f"https://ndownloader.figshare.com/files/{ figshare_id } " ,
210- )
207+ download_file (filename = download_zip , backup_url = f"https://ndownloader.figshare.com/files/{ figshare_id } " )
211208 except Exception as e :
212209 raise RuntimeError (f"Failed to download dataset: { e } " ) from e
213210
@@ -223,3 +220,16 @@ def _get_zipped_dataset(folderpath: Path, dataset_name: str, figshare_id: str) -
223220 raise RuntimeError (f"Expected extracted data at { extracted_path } , but not found" )
224221
225222 return sd .read_zarr (extracted_path )
223+
224+
225+ def download_file (filename : PathLike , backup_url : str ) -> None :
226+ """
227+ Replacement for scanpy._utils.check_presence_download using Pooch.
228+ Saves to the exact local path specified in 'filename'.
229+ """
230+ pooch .retrieve (
231+ url = backup_url ,
232+ known_hash = None ,
233+ fname = os .path .basename (filename ),
234+ path = os .path .dirname (filename ) or "." , # Handles current dir if no folder
235+ )
0 commit comments