test3 / upload_to_space.py
Ntdeseb's picture
Update VEO3 Free Space configuration
2651fca
#!/usr/bin/env python3
"""
Script para subir archivos al Space de Hugging Face
"""
import os
import subprocess
import sys
from pathlib import Path
def run_command(command, cwd=None):
"""Ejecuta un comando y retorna el resultado"""
try:
result = subprocess.run(command, shell=True, capture_output=True, text=True, cwd=cwd)
return result.returncode == 0, result.stdout, result.stderr
except Exception as e:
return False, "", str(e)
def check_git_status():
"""Verifica el estado de Git"""
print("🔍 Verificando estado de Git...")
# Verificar si estamos en un repositorio Git
success, stdout, stderr = run_command("git status")
if not success:
print("❌ No es un repositorio Git. Inicializando...")
run_command("git init")
run_command("git add .")
run_command('git commit -m "Initial commit"')
return True
print("✅ Repositorio Git encontrado")
return True
def add_remote():
"""Añade el remote del Space de Hugging Face"""
print("🔗 Configurando remote de Hugging Face...")
space_url = "https://huggingface.co/spaces/Ntdeseb/test3"
# Verificar si el remote ya existe
success, stdout, stderr = run_command("git remote -v")
if "huggingface" in stdout or "test3" in stdout:
print("✅ Remote ya configurado")
return True
# Añadir remote
success, stdout, stderr = run_command(f"git remote add huggingface {space_url}")
if success:
print("✅ Remote añadido correctamente")
return True
else:
print(f"❌ Error añadiendo remote: {stderr}")
return False
def commit_and_push():
"""Hace commit y push de los cambios"""
print("📤 Subiendo cambios al Space...")
# Añadir todos los archivos
success, stdout, stderr = run_command("git add .")
if not success:
print(f"❌ Error añadiendo archivos: {stderr}")
return False
# Hacer commit
success, stdout, stderr = run_command('git commit -m "Update VEO3 Free Space configuration"')
if not success:
print(f"❌ Error haciendo commit: {stderr}")
return False
# Push al Space
success, stdout, stderr = run_command("git push huggingface main")
if success:
print("✅ Cambios subidos correctamente al Space")
return True
else:
print(f"❌ Error subiendo cambios: {stderr}")
return False
def verify_files():
"""Verifica que todos los archivos necesarios estén presentes"""
print("🔍 Verificando archivos necesarios...")
required_files = [
"README.md",
"app.py",
"requirements.txt",
"setup.py",
"space_config.py",
".gitignore",
".gitattributes"
]
missing_files = []
for file in required_files:
if not os.path.exists(file):
missing_files.append(file)
if missing_files:
print(f"❌ Archivos faltantes: {', '.join(missing_files)}")
return False
print("✅ Todos los archivos necesarios están presentes")
return True
def main():
"""Función principal"""
print("🚀 Iniciando subida al Space de Hugging Face...")
print("=" * 60)
# Verificar archivos
if not verify_files():
print("❌ Faltan archivos necesarios")
return False
# Verificar estado de Git
if not check_git_status():
print("❌ Error con Git")
return False
# Añadir remote
if not add_remote():
print("❌ Error configurando remote")
return False
# Commit y push
if not commit_and_push():
print("❌ Error subiendo cambios")
return False
print("\n🎉 ¡Subida completada exitosamente!")
print("🌐 Tu Space estará disponible en: https://huggingface.co/spaces/Ntdeseb/test3")
print("\n📝 Notas importantes:")
print("- El Space puede tardar 5-10 minutos en iniciar")
print("- Los modelos se descargarán automáticamente")
print("- Verifica los logs en la interfaz de Hugging Face")
return True
if __name__ == "__main__":
success = main()
sys.exit(0 if success else 1)