async_timer.py 637 B

1234567891011121314151617181920
  1. from functools import wraps
  2. import time
  3. from typing import Callable, Any
  4. def async_timed():
  5. def wrapper(func: Callable) -> Callable:
  6. @wraps(func)
  7. async def wrapped(*args, **kwargs) -> Any:
  8. # print(f'выполняется {func} с аргументами {args} {kwargs}')
  9. start = time.time()
  10. try:
  11. return await func(*args, **kwargs)
  12. finally:
  13. end = time.time()
  14. total = end - start
  15. print(f'{func} завершилась за {total:.4f} с')
  16. return wrapped
  17. return wrapper