# decorators.py from functools import wraps # La importación original 'from spaces import GPU' es específica de Hugging Face Spaces. # Para un uso general o con Modal, este decorador necesitaría ser adaptado o # la gestión de GPU se haría directamente a través de la configuración de la función Modal. # Por ahora, mantenemos la estructura, pero ten en cuenta que @GPU no funcionará # fuera del entorno de HF Spaces tal como está. Modal tiene su propia forma de asignar GPUs. class GPU: # Placeholder para simular la estructura si no se ejecuta en HF Spaces def __init__(self, duration=100): self.duration = duration def __call__(self, func): @wraps(func) def wrapper(*args, **kwargs): # print(f"Simulando ejecución con GPU (duración: {self.duration}s) para: {func.__name__}") return func(*args, **kwargs) return wrapper def gpu_decorator(duration=100): """ Decorador personalizado que simula el uso de GPU. En un entorno de Hugging Face Spaces con GPU asignada, el decorador `spaces.GPU` real se encargaría de la gestión. """ def decorator(func): @GPU(duration=duration) # Usando nuestro placeholder o el real de `spaces` @wraps(func) def wrapper(*args, **kwargs): return func(*args, **kwargs) return wrapper return decorator