#!/usr/bin/env python3 """ App principal para execução no HuggingFace Space. Este arquivo executa o treinamento do modelo EDA. """ import os import subprocess import sys from space_lock import exclusive_training_lock def main(): """ Executa o script de treinamento. """ print("=" * 60) print("Iniciando treinamento do modelo EDA") print("=" * 60) script_path = os.path.join(os.path.dirname(__file__), "train.py") if not os.path.exists(script_path): print(f"❌ Erro: Arquivo {script_path} não encontrado!") sys.exit(1) print( "A aguardar lock exclusivo (um treino de cada vez na GPU). " "Se o Space reiniciar em paralelo, os outros processos ficam em fila aqui." ) try: with exclusive_training_lock(): result = subprocess.run( [sys.executable, script_path], check=True, capture_output=False, ) print("\n✅ Treinamento concluído com sucesso!") return result.returncode except subprocess.CalledProcessError as e: print(f"\n❌ Erro durante o treinamento: {e}") sys.exit(e.returncode) except KeyboardInterrupt: print("\n⚠️ Treinamento interrompido pelo usuário") sys.exit(130) if __name__ == "__main__": sys.exit(main())