Spaces:
Paused
Paused
| import importlib | |
| import requests | |
| from pathlib import Path | |
| from os.path import dirname | |
| from omegaconf import OmegaConf | |
| from tqdm import tqdm | |
| PROJECT_DIR = dirname(dirname(dirname(__file__))) | |
| CONFIG_FOLDER = f'{PROJECT_DIR}/assets/config' | |
| MODEL_FOLDER = f'{PROJECT_DIR}/assets/models' | |
| def download_file(url, save_path, chunk_size=1024): | |
| try: | |
| save_path = Path(save_path) | |
| if save_path.exists(): | |
| print(f'{save_path.name} exists') | |
| return | |
| save_path.parent.mkdir(exist_ok=True, parents=True) | |
| resp = requests.get(url, stream=True) | |
| total = int(resp.headers.get('content-length', 0)) | |
| with open(save_path, 'wb') as file, tqdm( | |
| desc=save_path.name, | |
| total=total, | |
| unit='iB', | |
| unit_scale=True, | |
| unit_divisor=1024, | |
| ) as bar: | |
| for data in resp.iter_content(chunk_size=chunk_size): | |
| size = file.write(data) | |
| bar.update(size) | |
| print(f'{save_path.name} download finished') | |
| except Exception as e: | |
| raise Exception(f"Download failed: {e}") | |
| def get_obj_from_str(string): | |
| module, cls = string.rsplit(".", 1) | |
| try: | |
| return getattr(importlib.import_module(module, package=None), cls) | |
| except: | |
| return getattr(importlib.import_module('lib.' + module, package=None), cls) | |
| def load_obj(path): | |
| objyaml = OmegaConf.load(path) | |
| return get_obj_from_str(objyaml['__class__'])(**objyaml.get("__init__", {})) | |