Spaces:
Sleeping
Sleeping
| from functools import wraps | |
| from time import time | |
| from typing import Any, Callable, Literal | |
| from loguru import logger | |
| Log_Level = Literal[ | |
| "TRACE", | |
| "DEBUG", | |
| "INFO", | |
| "SUCCESS", | |
| "WARNING", | |
| "ERROR", | |
| "CRITICAL", | |
| ] | |
| def timed_function(level: Log_Level = "INFO") -> Callable[..., Any]: | |
| def decorator(func: Any) -> Callable[..., Any]: | |
| def wrapper(*args: Any, **kwargs: Any) -> Any: | |
| start_time = time() | |
| result = func(*args, **kwargs) | |
| execution_time = time() - start_time | |
| logger.log( | |
| level, | |
| f"Function '{func.__qualname__}' executed in {execution_time:.4f} seconds", | |
| ) | |
| return result | |
| return wrapper | |
| return decorator | |