| 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() |
|
|
|
|