from __future__ import annotations from pathlib import Path from huggingface_hub import HfApi USERNAME = "Sami94" ROOT = Path(__file__).resolve().parents[1] MODEL_REPOS = { f"{USERNAME}/ppo-LunarLander-v2": ROOT / "artifacts/unit1/ppo-LunarLander-v2", f"{USERNAME}/q-FrozenLake-v1-4x4-noSlippery": ROOT / "artifacts/unit2/q-FrozenLake-v1-4x4-noSlippery", f"{USERNAME}/q-Taxi-v3": ROOT / "artifacts/unit2/q-Taxi-v3", } COURSE_REPO = f"{USERNAME}/hf-deep-rl-course-certification" def upload_model_repo(api: HfApi, repo_id: str, folder: Path) -> None: if not folder.exists(): print(f"SKIP {repo_id}: missing folder {folder}") return api.create_repo(repo_id=repo_id, repo_type="model", exist_ok=True) api.upload_folder(repo_id=repo_id, repo_type="model", folder_path=folder, path_in_repo=".") print(f"Uploaded model repo: https://huggingface.co/{repo_id}") def upload_course_folder(api: HfApi) -> None: api.create_repo(repo_id=COURSE_REPO, repo_type="model", exist_ok=True) api.upload_folder( repo_id=COURSE_REPO, repo_type="model", folder_path=ROOT, path_in_repo=".", ignore_patterns=[ ".git/*", "__pycache__/*", "*.pyc", ], ) print(f"Uploaded course folder: https://huggingface.co/{COURSE_REPO}") def main() -> None: api = HfApi() whoami = api.whoami() print(f"Authenticated as: {whoami.get('name')} ({whoami.get('fullname')})") for repo_id, folder in MODEL_REPOS.items(): upload_model_repo(api, repo_id, folder) upload_course_folder(api) if __name__ == "__main__": main()