orbura / sync_space.py
Quincybob
Rebrand Body Debt to Orbura
5d97b9d
Raw
History Blame Contribute Delete
2.5 kB
"""
Sync the local hf-space/ directory to the HF Space repo.
The Space and the monorepo are separate git repos; this uploads the
Space's files via the HF API rather than via git, so the two histories
stay independent.
Usage:
export HF_TOKEN=hf_xxx...
python sync_space.py
# or
hf auth login && python sync_space.py
"""
from __future__ import annotations
import os
from pathlib import Path
SPACE_ID = os.environ.get("ORBURA_SPACE_REPO", "Papajams/orbura")
# Also push to the hackathon org space if the user is a member.
ORG_SPACE_ID = "build-small-hackathon/orbura"
HERE = Path(__file__).parent
SPACE_DIR = HERE
# Files and patterns to push. The Space is just the Gradio app — no
# Next.js / docs / scripts that are not Space-relevant.
PUSH_PATTERNS = [
"app.py",
"scoring.py",
"face_scan.py",
"stress_model.py",
"health_coach.py",
"train_stress_model.py",
"publish_mlp.py",
"publish_traces.py",
"generate_trace_dataset.py",
"generate_model.py",
"requirements.txt",
"README.md",
"models/stress_model.onnx",
"models/README.md",
"models/stress_model_weights.npz",
"models/stress_training_data.npz",
"models/stress_metrics.json",
"demo.mp4",
]
def main() -> None:
from huggingface_hub import HfApi, whoami
api = HfApi()
try:
user = whoami()
print(f"Authenticated as: {user.get('name', '?')}")
except Exception as e:
raise SystemExit(
"Not authenticated. Run `hf auth login` or set HF_TOKEN."
) from e
# Verify each pattern exists
missing = [p for p in PUSH_PATTERNS if not (SPACE_DIR / p).exists()]
if missing:
raise SystemExit(f"Missing files: {missing}")
targets = [SPACE_ID]
try:
org_info = api.repo_info(repo_id=ORG_SPACE_ID, repo_type="space")
if org_info:
targets.append(ORG_SPACE_ID)
except Exception as e:
print(f" (skipping {ORG_SPACE_ID}: {e})")
for target in targets:
print(f"\nPushing to {target}...")
api.upload_folder(
folder_path=str(SPACE_DIR),
repo_id=target,
repo_type="space",
allow_patterns=PUSH_PATTERNS,
commit_message=(
"Sync trained MLP, agent trace dataset, updated README, "
"and submission prep scripts"
),
)
print(f" Done: https://huggingface.co/spaces/{target}")
if __name__ == "__main__":
main()