Skip to content

Instantly share code, notes, and snippets.

@nejdetckenobi
Created February 18, 2020 09:26
Show Gist options
  • Save nejdetckenobi/ea3bf9059481fc39d4eca27a50a25aeb to your computer and use it in GitHub Desktop.
Save nejdetckenobi/ea3bf9059481fc39d4eca27a50a25aeb to your computer and use it in GitHub Desktop.
A timer class for logging process times.
from time import time
class Timer(object):
def __init__(self, label=None, logger=None, verbose=False):
self.start = None
self.end = None
self.verbose = verbose
self.label = label
self.logger = logger
def __enter__(self):
self.start = time()
def __exit__(self, exc_type, exc_val, exc_tb):
self.end = time()
self.log_time()
def log_time(self):
assert self.start is not None and self.end is not None
message = 'Consumed time for "{}": {}'.format(self.label,
self.end - self.start)
if self.logger is None:
print(message)
else:
self.logger.info(message)
def start_timer(self):
self.start = time()
def stop_timer(self):
self.end = time()
self.log_time()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment