#!/usr/bin/env python3 import os import sys from pathlib import Path from typing import List try: from huggingface_hub import HfApi, upload_folder except Exception as e: print("huggingface_hub is not installed. Install it with: pip install huggingface_hub", file=sys.stderr) raise SPACE_ID = "NiloyMondal/TDS_Project_1" SPACE_URL = f"https://huggingface.co/spaces/{SPACE_ID}" def get_token() -> str: token = os.environ.get("HF_TOKEN") or os.environ.get("HUGGINGFACE_TOKEN") if not token: print("Error: Please set HF_TOKEN (or HUGGINGFACE_TOKEN) environment variable with your Hugging Face API token.", file=sys.stderr) sys.exit(1) return token def main() -> int: repo_root = Path(__file__).resolve().parents[1] token = get_token() api = HfApi(token=token) # Ensure repo exists and is a Space (won't overwrite if exists) api.create_repo( repo_id=SPACE_ID, repo_type="space", exist_ok=True, space_sdk="docker", # Our project ships a Dockerfile ) # Ignore typical local/dev files ignore_patterns: List[str] = [ ".git*", "**/__pycache__/**", "venv/**", ".venv/**", "**/.pytest_cache/**", "**/.mypy_cache/**", "**/.DS_Store", "**/*:Zone.Identifier", ] print(f"Uploading folder {repo_root} to {SPACE_URL} ...") upload_folder( repo_id=SPACE_ID, repo_type="space", token=token, folder_path=str(repo_root), path_in_repo="/", commit_message="Deploy from local workspace", ignore_patterns=ignore_patterns, ) print("Upload complete. Your Space will start building shortly:") print(SPACE_URL) return 0 if __name__ == "__main__": raise SystemExit(main())