# app.py import sys from pathlib import Path import os CURRENT_DIR = Path(__file__).parent if str(CURRENT_DIR) not in sys.path: sys.path.insert(0, str(CURRENT_DIR)) try: # No necesitamos decorators ni interface para esta prueba simple from UI import create_interface # Importa la UI.py simplificada except ImportError as e: print(f"Error crítico de importación en app.py: {e}.") sys.exit(1) # No se necesita la lógica del decorador dummy para esta prueba print("INFO (app.py - Prueba Simplificada): Saltando chequeo de decorador GPU.") def main(): print("INFO (app.py - Prueba Simplificada): Creando la interfaz Gradio simplificada...") # La UI simplificada define su propia función de callback simple (simple_greet) # por lo que no necesitamos pasar process_and_plot aquí. # create_interface ya conecta su propio botón a su propia función. demo_instance = create_interface(process_function_for_button=None) # Pasamos None o una dummy print("INFO (app.py - Prueba Simplificada): Lanzando la interfaz Gradio localmente...") try: demo_instance.launch(debug=True) except ValueError as ve: if "shareable link must be created" in str(ve).lower() or "localhost is not accessible" in str(ve).lower(): print("ADVERTENCIA (app.py): Falló el lanzamiento local directo, intentando con share=True...") demo_instance.launch(share=True, debug=True) else: print(f"Error inesperado de ValueError durante launch(): {ve}") raise ve # Relanzar para ver el error completo except Exception as e_launch: print(f"Error inesperado durante demo.launch(): {e_launch}") raise e_launch # Relanzar if __name__ == "__main__": main()