#!/usr/bin/env python3 """ Fresh deployment script - creates a new HF Space from scratch """ import os import subprocess from pathlib import Path def run_command(cmd): """Run a command and return the result""" try: result = subprocess.run(cmd, shell=True, capture_output=True, text=True) if result.returncode != 0: print(f"Error: {result.stderr}") return False print(result.stdout) return True except Exception as e: print(f"Exception: {e}") return False def deploy_fresh(): """Deploy to a fresh HF Space""" hf_token = os.getenv('HF_TOKEN') if not hf_token: print("HF_TOKEN not set. Please run:") print("set HF_TOKEN=your_huggingface_token_here") return False print("Creating fresh HF Space deployment...") # Create deployment script deploy_script = f''' from huggingface_hub import HfApi api = HfApi(token="{hf_token}") # Get username first try: user_info = api.whoami() username = user_info["name"] print(f"Username: {{username}}") except Exception as e: print(f"Could not get username: {{e}}") username = "gsstec" # fallback repo_id = f"{{username}}/tec-app" print(f"Creating space: {{repo_id}}") try: # Create the space api.create_repo( repo_id=repo_id, repo_type="space", space_sdk="docker", exist_ok=True, private=False ) print("Space created successfully!") print("Uploading files...") # Upload files api.upload_folder( folder_path=".", repo_id=repo_id, repo_type="space", ignore_patterns=[".git", "__pycache__", "*.pyc", "temp_deploy.py", "deploy_fresh.py", "redeploy.py"] ) print(f"Successfully deployed to https://huggingface.co/spaces/{{repo_id}}") print("Your app will be available in a few minutes!") print("The Docker container will build and start automatically.") except Exception as e: print(f"Deployment failed: {{e}}") import traceback traceback.print_exc() ''' with open('temp_deploy.py', 'w') as f: f.write(deploy_script) success = run_command("python temp_deploy.py") # Cleanup if Path('temp_deploy.py').exists(): Path('temp_deploy.py').unlink() return success if __name__ == "__main__": print("Fresh HF Space Deployment") print("=" * 25) if deploy_fresh(): print("Deployment completed!") else: print("Deployment failed!")