c-gohlke's picture
Upload folder using huggingface_hub
51cf3cb verified
from __future__ import annotations
from pathlib import Path
import yaml
from huggingface_hub import hf_hub_download
from src.constants import MODEL_REPO, MODEL_REPO_TYPE
def get_mp4_paths(environments: list[str]) -> dict[str, Path]:
mp4_paths: dict[str, Path] = {}
for env in environments:
mp4_paths[env] = get_best(env, filename="demo.mp4")
return mp4_paths
def get_best(env: str, filename: str = "demo.mp4") -> Path:
hf_env_results_path = f"models/{env}/results.yaml"
local_env_results_path = hf_hub_download(
repo_id=MODEL_REPO,
repo_type=MODEL_REPO_TYPE,
filename=hf_env_results_path,
)
with Path(local_env_results_path).open() as f:
env_results = yaml.safe_load(f)
best_model_type = max(env_results, key=lambda model: env_results[model])
model_results_path = f"models/{env}/{best_model_type}/results.yaml"
local_model_results_path = hf_hub_download(
repo_id=MODEL_REPO,
repo_type=MODEL_REPO_TYPE,
filename=model_results_path,
)
with Path(local_model_results_path).open() as f:
model_results = yaml.safe_load(f)
best_model = max(model_results, key=lambda model: model_results[model])
hf_gif_path = f"models/{env}/{best_model_type}/{best_model}/{filename}"
return Path(hf_hub_download(repo_id=MODEL_REPO, repo_type=MODEL_REPO_TYPE, filename=hf_gif_path))