r"""Create or update the Hugging Face Space used for dataset uploads. Usage: python deploy_space.py --space-id chenxingyu2001/soft-arm-uploader --token hf_... The token must have write access to the Space and to the target dataset. """ import argparse import os from pathlib import Path from huggingface_hub import HfApi, get_token def main(): parser = argparse.ArgumentParser() parser.add_argument("--space-id", default="chenxingyu2001/soft-arm-uploader") parser.add_argument("--token", default=os.getenv("HF_TOKEN") or get_token(), help="HF write token, HF_TOKEN, or hf auth login") parser.add_argument("--dataset-repo-id", default="team-chen/soft-arm-2026") args = parser.parse_args() if not args.token: raise SystemExit("Missing token. Pass --token or set HF_TOKEN.") root = Path(__file__).resolve().parent api = HfApi(token=args.token) api.create_repo( repo_id=args.space_id, repo_type="space", space_sdk="gradio", exist_ok=True, ) api.upload_folder( repo_id=args.space_id, repo_type="space", folder_path=str(root), ignore_patterns=["__pycache__/*", "*.pyc"], commit_message="Deploy soft-arm dataset uploader", ) print(f"Space deployed: https://huggingface.co/spaces/{args.space_id}") print(f"Set Space secrets: HF_TOKEN=, DATASET_REPO_ID={args.dataset_repo_id}") if __name__ == "__main__": main()