""" Timer context manager, only used in debug. """ from time import time import contextlib from typing import Generator @contextlib.contextmanager def timer(subject: str = "time") -> Generator[None, None, None]: """print the elapsed time. (only used in debugging)""" start = time() yield elapsed = time() - start elapsed_ms = elapsed * 1000 print(f"{subject} elapsed {elapsed_ms:.1f}ms")