|
|
|
import sys |
|
from pathlib import Path |
|
|
|
CURRENT_DIR = Path(__file__).parent |
|
if str(CURRENT_DIR) not in sys.path: |
|
sys.path.insert(0, str(CURRENT_DIR)) |
|
|
|
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 o en PYTHONPATH.") |
|
sys.exit(1) |
|
|
|
|
|
if decorators.was_real_spaces_gpu_imported(): |
|
print("INFO (app.py): El decorador GPU de 'spaces' parece estar disponible.") |
|
print("INFO (app.py): Se definir谩 una funci贸n dummy decorada para satisfacer el chequeo de Gradio si es necesario.") |
|
|
|
@decorators.gpu_decorator(duration=1) |
|
def _app_py_dummy_gpu_function_for_gradio_startup(): |
|
pass |
|
else: |
|
print("INFO (app.py): El decorador GPU real de 'spaces' no fue importado. No se necesita funci贸n dummy para GPU.") |
|
|
|
|
|
def main(): |
|
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...") |
|
|
|
|
|
try: |
|
demo_instance.launch() |
|
except ValueError as ve: |
|
if "shareable link must be created" in str(ve): |
|
print("ADVERTENCIA (app.py): Fall贸 el lanzamiento local directo, intentando con share=True...") |
|
demo_instance.launch(share=True) |
|
else: |
|
raise ve |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |