CelestialSurveyor
37 строк · 1.1 Кб
1import time
2
3from logger.logger import get_logger
4from typing import Callable, Any
5
6
7logger = get_logger()
8
9
10def measure_execution_time(func: Callable) -> Callable:
11"""
12A decorator function to measure the execution time of a given function.
13
14Args:
15func (callable): The function to measure the execution time for.
16
17Returns:
18callable: The wrapped function that measures the execution time.
19"""
20def wrapper(*args, **kwargs) -> Any:
21"""
22Wrapper function to measure the execution time of the decorated function.
23
24Args:
25*args: Positional arguments for the decorated function.
26**kwargs: Keyword arguments for the decorated function.
27
28Returns:
29Any: The result of the decorated function.
30"""
31start_time = time.time()
32result = func(*args, **kwargs)
33end_time = time.time()
34execution_time = end_time - start_time
35logger.log.info(f"Execution time of {func.__name__}: {execution_time} seconds")
36return result
37return wrapper
38