from io import BytesIO from typing import List from zipfile import ZipFile from urllib.request import urlopen import os def download_and_extract(remote_model_url: str, local_model_dir) -> List[str]: resp = urlopen(remote_model_url) os.makedirs(local_model_dir, exist_ok=True) with ZipFile(BytesIO(resp.read())) as zip_file: all_files_and_dirs = zip_file.namelist() zip_file.extractall(local_model_dir) return all_files_and_dirs