File size: 2,211 Bytes
d3d8124 e43df9f de3a711 e43df9f de3a711 e43df9f de3a711 e43df9f d3d8124 de3a711 e43df9f de3a711 e43df9f de3a711 d3d8124 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# app.py
import sys
from pathlib import Path
# A帽adir el directorio actual al path para asegurar que se encuentran los m贸dulos locales
# como UI, interface, decorators, config, models.
CURRENT_DIR = Path(__file__).parent
if str(CURRENT_DIR) not in sys.path:
sys.path.insert(0, str(CURRENT_DIR))
# Ahora que el path est谩 configurado, podemos importar los m贸dulos locales.
try:
import decorators
from UI import create_interface
import interface as app_interface_module
except ImportError as e:
print(f"Error cr铆tico de importaci贸n en app.py: {e}. Aseg煤rate de que todos los archivos .py est茅n en el mismo directorio.")
sys.exit(1)
# --- Manejo del decorador GPU para el arranque de Gradio local ---
# Si el decorador real de HF Spaces fue importado (incluso si es un stub de una lib),
# Gradio podr铆a esperar que una funci贸n est茅 decorada.
if decorators.was_real_spaces_gpu_imported():
print("INFO (app.py): El decorador GPU de 'spaces' parece estar disponible (o es un stub).")
print("INFO (app.py): Se definir谩 una funci贸n dummy decorada para satisfacer el chequeo de Gradio.")
@decorators.gpu_decorator(duration=1) # Usa TU gpu_decorator
def _app_py_dummy_gpu_function_for_gradio_startup():
"""Esta funci贸n es solo para satisfacer el chequeo de Gradio."""
# print("Funci贸n dummy GPU de app.py ejecutada (no deber铆a hacer nada).")
pass
else:
print("INFO (app.py): El decorador GPU real de 'spaces' no fue importado. No se necesita funci贸n dummy para GPU.")
# --- Fin del manejo del decorador GPU ---
def main():
# Pasa la funci贸n de procesamiento real (process_and_plot) a create_interface
# app_interface_module.process_and_plot es la funci贸n que queremos que el bot贸n llame.
print("INFO (app.py): Creando la interfaz Gradio...")
demo_instance = create_interface(process_function_for_button=app_interface_module.process_and_plot)
print("INFO (app.py): Lanzando la interfaz Gradio localmente...")
# Para desarrollo, puedes habilitar debug y share si es necesario.
# demo_instance.launch(debug=True, share=True)
demo_instance.launch()
if __name__ == "__main__":
main() |