File size: 1,801 Bytes
8fa3dd6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from __future__ import annotations

import argparse
import os
from pathlib import Path


def main() -> None:
    parser = argparse.ArgumentParser(description="Upload the public-safe Ares Static Space files to Hugging Face.")
    parser.add_argument("--repo-id", default="jacmor64/ares-static-lab", help="Space repo id, e.g. jacmor64/ares-static-lab")
    parser.add_argument("--root", default=".")
    parser.add_argument("--message", default="Update Ares Static Lab")
    parser.add_argument("--private", action="store_true", help="Create Space as private if it does not exist")
    args = parser.parse_args()

    token = os.environ.get("HF_TOKEN") or os.environ.get("HUGGINGFACE_TOKEN")
    if not token:
        raise SystemExit("Set HF_TOKEN in the environment. Do not write it into any repo file.")

    try:
        from huggingface_hub import HfApi, upload_folder
    except ImportError as exc:
        raise SystemExit("Install huggingface_hub first: pip install huggingface_hub") from exc

    root = Path(args.root).resolve()
    api = HfApi(token=token)
    api.create_repo(args.repo_id, repo_type="space", space_sdk="static", private=args.private, exist_ok=True)
    upload_folder(
        folder_path=str(root),
        repo_id=args.repo_id,
        repo_type="space",
        token=token,
        commit_message=args.message,
        ignore_patterns=[
            ".git/*", "artifacts/*", "checkpoints/*", "runs/*", "wandb/*", "raw_data/*", "processed_data/*",
            "**/__pycache__/*", "**/.ipynb_checkpoints/*", "*.pt", "*.pth", "*.ckpt", "*.safetensors", "*.bin",
            "*.db", "*.sqlite", "*.sqlite3", ".env", "kaggle.json", ".netrc",
        ],
    )
    print(f"Uploaded {root} to https://huggingface.co/spaces/{args.repo_id}")


if __name__ == "__main__":
    main()