import argparse from pathlib import Path from huggingface_hub import HfApi def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description="Upload a local GravityLLM folder to the Hugging Face Hub.") parser.add_argument("--folder_path", type=Path, required=True, help="Local folder to upload.") parser.add_argument("--repo_id", type=str, required=True, help="Namespace/repo-name on Hugging Face.") parser.add_argument("--repo_type", type=str, default="model", choices=["model", "dataset", "space"]) parser.add_argument("--private", action="store_true") parser.add_argument("--commit_message", type=str, default="Upload GravityLLM artifacts") return parser.parse_args() def main() -> None: args = parse_args() api = HfApi() api.create_repo(repo_id=args.repo_id, repo_type=args.repo_type, private=args.private, exist_ok=True) api.upload_folder( folder_path=str(args.folder_path), repo_id=args.repo_id, repo_type=args.repo_type, commit_message=args.commit_message, ) print(f"Uploaded {args.folder_path} to https://huggingface.co/{args.repo_id}") if __name__ == "__main__": main()