Spaces:
Running
Running
| import logging | |
| from huggingface_hub import snapshot_download | |
| from huggingface_hub.utils import LocalEntryNotFoundError | |
| def download_hf_snapshot( | |
| repo_id: str, | |
| work_dir: str, | |
| force_download: bool = False, | |
| **kwargs, | |
| ) -> str: | |
| """Download a snapshot from Hugging Face Hub to `work_dir`. | |
| Args: | |
| repo_id: e.g. "espnet/xeus" | |
| work_dir: path to local directory where to store snapshot | |
| force_download: if True, enforce re-download | |
| **kwargs: other snapshot_download arguments | |
| Returns: | |
| The path to the local snapshot folder | |
| """ | |
| if force_download: | |
| logging.info( | |
| f"Force-downloading snapshot for {repo_id} into {work_dir}..." | |
| ) | |
| path = snapshot_download( | |
| repo_id=repo_id, | |
| local_dir=work_dir, | |
| force_download=True, | |
| local_files_only=False, | |
| **kwargs, | |
| ) | |
| logging.info(f"Downloaded snapshot for {repo_id} to {path}") | |
| return path | |
| try: | |
| path = snapshot_download( | |
| repo_id=repo_id, | |
| local_dir=work_dir, | |
| local_files_only=True, | |
| **kwargs, | |
| ) | |
| logging.info( | |
| f"Using existing local snapshot for {repo_id} at {path}" | |
| ) | |
| return path | |
| except LocalEntryNotFoundError: | |
| logging.info( | |
| f"No local snapshot found for {repo_id}. Downloading now..." | |
| ) | |
| path = snapshot_download( | |
| repo_id=repo_id, | |
| local_dir=work_dir, | |
| local_files_only=False, | |
| **kwargs, | |
| ) | |
| logging.info(f"Downloaded snapshot for {repo_id} to {path}") | |
| return path | |