CivicAI / push_to_hf.py
mahammadaftab's picture
Initial Update
315caa2
import os
import sys
import subprocess
def push_to_huggingface(token, space_id):
"""
Pushes the local directory to a Hugging Face Space.
space_id should be in the format 'username/space_name'
"""
try:
from huggingface_hub import HfApi
except ImportError:
print("Installing huggingface_hub...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "huggingface_hub"])
from huggingface_hub import HfApi
print(f"Pushing current directory to Hugging Face Space: {space_id}...")
api = HfApi(token=token)
try:
# Create space if it doesn't exist
api.create_repo(
repo_id=space_id,
repo_type="space",
space_sdk="docker",
exist_ok=True
)
print("Space created or already exists.")
except Exception as e:
print(f"Note: Could not create space. It may already exist. ({e})")
try:
# Upload folder
api.upload_folder(
folder_path=".",
repo_id=space_id,
repo_type="space",
commit_message="OpenEnv Hackathon Submission - CivicAI Environment",
ignore_patterns=[".git", ".venv", "__pycache__", "push_to_hf.py", ".DS_Store"]
)
print(f"\nβœ… Successfully pushed to Hugging Face Spaces!")
print(f"🌐 View your space at: https://huggingface.co/spaces/{space_id}")
print(f"πŸ‘‰ Don't forget to update the README.md with this URL!")
except Exception as e:
print(f"\n❌ Error pushing to space: {e}")
if __name__ == "__main__":
print("πŸš€ CivicAI -> Hugging Face Spaces Deployer")
print("="*45)
# Get user input
token = input("Enter your Hugging Face Token (from https://huggingface.co/settings/tokens): ").strip()
space_id = input("Enter the target Space ID (e.g. your_username/civicai-env): ").strip()
if not token or not space_id:
print("Error: Token and Space ID are required.")
sys.exit(1)
push_to_huggingface(token, space_id)