File size: 1,315 Bytes
de32bd1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import argparse
import os
from huggingface_hub import HfApi


def main() -> None:
    parser = argparse.ArgumentParser(description="Upload a folder to Hugging Face Hub")
    parser.add_argument("--local_dir", type=str, required=True, help="Local adapter directory, e.g. ./lora_area_1p5b")
    parser.add_argument("--repo_id", type=str, required=True, help="Target repo id, e.g. yourname/Qwen2.5-1.5B-MetRex-Area-LoRA")
    parser.add_argument("--private", action="store_true", help="Create private repo")
    parser.add_argument("--commit_message", type=str, default="Upload LoRA adapter")
    args = parser.parse_args()

    if not os.path.isdir(args.local_dir):
        raise FileNotFoundError(f"local_dir does not exist: {args.local_dir}")

    token = os.environ.get("HF_TOKEN")
    if not token:
        raise EnvironmentError("HF_TOKEN is not set. Export your Hugging Face token first.")

    api = HfApi(token=token)
    api.create_repo(repo_id=args.repo_id, private=args.private, exist_ok=True)
    api.upload_folder(
        repo_id=args.repo_id,
        folder_path=args.local_dir,
        commit_message=args.commit_message,
        ignore_patterns=["checkpoint-*", "*.log", "logs/*"],
    )

    print(f"Upload completed: https://huggingface.co/{args.repo_id}")


if __name__ == "__main__":
    main()