Guest User

Untitled

a guest
May 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. import time
  2.  
  3.  
  4. class Timer(object):
  5. def __init__(self, func=None):
  6. if func is None:
  7. func = time.perf_counter
  8. self._func = func
  9. self.reset()
  10.  
  11. def start(self):
  12. if self._start is not None:
  13. raise RuntimeError('Already started')
  14. self._start = self._func()
  15.  
  16. def stop(self):
  17. if self._start is None:
  18. raise RuntimeError('Not started')
  19. end = self._func()
  20. self.elapsed += end - self._start
  21. self._start = None
  22.  
  23. def reset(self):
  24. self.elapsed = 0.0
  25. self._start = None
  26.  
  27. @proper
  28. def running(self):
  29. return self._start is not None
  30.  
  31. def __enter__(self):
  32. self.start()
  33. return self
  34.  
  35. def __exit__(self, *args):
  36. self.stop()
Add Comment
Please, Sign In to add comment