helpers.py 649 B

1234567891011121314151617181920212223
  1. import asyncio
  2. import functools
  3. import inspect
  4. import time
  5. from typing import Any
  6. def measure(*, reset: bool = False, ms: bool = False):
  7. global t
  8. if 't' in globals() and not reset:
  9. dt = time.time() - t
  10. line = inspect.stack()[1][0].f_lineno
  11. output = f'{dt * 1000:7.3f} ms' if ms else f'{dt:7.3f} s'
  12. print(f'{inspect.stack()[1].filename}:{line}', output, flush=True)
  13. if reset:
  14. print('------------', flush=True)
  15. t = time.time()
  16. def is_coroutine(object: Any) -> bool:
  17. while isinstance(object, functools.partial):
  18. object = object.func
  19. return asyncio.iscoroutinefunction(object)