Skip to content

Instantly share code, notes, and snippets.

@ground0state
Created September 3, 2020 13:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ground0state/9366b42fe8f5c95e9172c968129f3585 to your computer and use it in GitHub Desktop.
Save ground0state/9366b42fe8f5c95e9172c968129f3585 to your computer and use it in GitHub Desktop.
import time
import logging
from contextlib import contextmanager
from typing import Optional
@contextmanager
def timer(name: str, logger: Optional[logging.Logger] = None):
t0 = time.time()
msg = f"[{name}] start"
if logger is None:
print(msg)
else:
logger.info(msg)
yield
msg = f"[{name}] done in {time.time() - t0:.2f} s"
if logger is None:
print(msg)
else:
logger.info(msg)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment