File size: 1,831 Bytes
3799788
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from __future__ import annotations

import argparse
import os
from pathlib import Path

from huggingface_hub import create_repo, get_token, upload_folder, whoami


def parse_args() -> argparse.Namespace:
    parser = argparse.ArgumentParser(description="Upload the prepared release folder to Hugging Face.")
    parser.add_argument("--repo-id", default=None, help="Target repo id. Defaults to <your-username>/gomoku-maskable-ppo-stage3-h6.")
    parser.add_argument("--token", default=None, help="HF token. Falls back to cached login or HF_TOKEN/HUGGINGFACE_HUB_TOKEN.")
    parser.add_argument("--private", action="store_true", help="Create/upload as a private model repo.")
    parser.add_argument("--commit-message", default="Upload Gomoku MaskablePPO stage3_h6 release")
    return parser.parse_args()


def main() -> None:
    args = parse_args()
    token = args.token or os.environ.get("HF_TOKEN") or os.environ.get("HUGGINGFACE_HUB_TOKEN") or get_token()
    if not token:
        raise SystemExit(
            "No Hugging Face token found. Set HF_TOKEN/HUGGINGFACE_HUB_TOKEN, "
            "pass --token, or login with huggingface_hub.login()."
        )

    repo_id = args.repo_id
    if not repo_id:
        user = whoami(token)["name"]
        repo_id = f"{user}/gomoku-maskable-ppo-stage3-h6"

    folder = Path(__file__).resolve().parent
    create_repo(repo_id=repo_id, token=token, repo_type="model", private=args.private, exist_ok=True)
    upload_folder(
        repo_id=repo_id,
        folder_path=str(folder),
        token=token,
        repo_type="model",
        commit_message=args.commit_message,
        ignore_patterns=["__pycache__", "*.pyc"],
    )
    print(f"Upload complete: https://huggingface.co/{repo_id}")


if __name__ == "__main__":
    main()