WorldDisasterLM-8B / scripts /upload_space.py
drdeveloper88's picture
Upload WorldDisasterLM-8B source code: FastAPI backend, training pipeline, 11-language support
495526b
Raw
History Blame Contribute Delete
3.42 kB
"""
Upload WorldDisasterLM-8B as a public HuggingFace Space (Gradio demo).
Usage
-----
# Set your HF token first:
$env:HF_TOKEN = "hf_xxxxxxxxxxxxxxxxxxxx"
# Then run:
python scripts/upload_space.py --username YOUR_HF_USERNAME
# Optionally specify a custom space name:
python scripts/upload_space.py --username YOUR_HF_USERNAME --space-name WorldDisasterLM-8B
Requirements
------------
pip install huggingface_hub
"""
from __future__ import annotations
import argparse
import os
import sys
from pathlib import Path
ROOT = Path(__file__).parent.parent
SPACE_DIR = ROOT / "hf_space"
def parse_args() -> argparse.Namespace:
p = argparse.ArgumentParser(description="Upload WorldDisasterLM-8B to HuggingFace Spaces")
p.add_argument("--username", required=True, help="Your HuggingFace username")
p.add_argument("--space-name", default="WorldDisasterLM-8B", help="Space repository name")
p.add_argument("--private", action="store_true", help="Create as private space (default: public)")
return p.parse_args()
def main() -> None:
args = parse_args()
# Check token
token = os.environ.get("HF_TOKEN")
if not token:
print("ERROR: HF_TOKEN environment variable is not set.")
print(" Set it with: $env:HF_TOKEN = 'hf_xxxxxxxxxxxx'")
sys.exit(1)
try:
from huggingface_hub import HfApi, create_repo
except ImportError:
print("ERROR: huggingface_hub not installed. Run: pip install huggingface_hub")
sys.exit(1)
repo_id = f"{args.username}/{args.space_name}"
api = HfApi(token=token)
print(f"\n{'='*60}")
print(f" WorldDisasterLM-8B → HuggingFace Space")
print(f" Repo : {repo_id}")
print(f" Private: {args.private}")
print(f"{'='*60}\n")
# 1. Create the Space repo
print("Step 1/3 — Creating Space repository...")
create_repo(
repo_id=repo_id,
repo_type="space",
space_sdk="gradio",
private=args.private,
exist_ok=True,
token=token,
)
print(f" ✓ Space created: https://huggingface.co/spaces/{repo_id}")
# 2. Patch README.md with actual username
readme_src = SPACE_DIR / "README.md"
readme_text = readme_src.read_text(encoding="utf-8")
readme_text = readme_text.replace("YOUR_HF_USERNAME", args.username)
import tempfile, shutil
tmp_dir = Path(tempfile.mkdtemp())
try:
# Copy space files to temp dir with patched README
shutil.copytree(str(SPACE_DIR), str(tmp_dir / "space"))
(tmp_dir / "space" / "README.md").write_text(readme_text, encoding="utf-8")
# 3. Upload the folder
print("Step 2/3 — Uploading files...")
api.upload_folder(
folder_path=str(tmp_dir / "space"),
repo_id=repo_id,
repo_type="space",
commit_message="Upload WorldDisasterLM-8B Space demo",
token=token,
)
print(" ✓ Files uploaded")
finally:
shutil.rmtree(tmp_dir, ignore_errors=True)
print("\nStep 3/3 — Verifying Space...")
space_info = api.space_info(repo_id=repo_id, token=token)
print(f" ✓ Space status: {getattr(space_info, 'runtime', {})}")
print(f"\n{'='*60}")
print(f" DONE! Your Space is live at:")
print(f" https://huggingface.co/spaces/{repo_id}")
print(f"{'='*60}\n")
if __name__ == "__main__":
main()