#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function, absolute_import
import datetime
import time
[docs]class Timer(object):
"""Timer class"""
[docs] def __init__(self):
# Initialize internal properties
self._start = None
self._elapsed = None
[docs] def start(self):
"""Start timer
Returns
-------
self
"""
self._elapsed = None
self._start = time.time()
return self
[docs] def stop(self):
"""Stop timer
Returns
-------
self
"""
self._elapsed = (time.time() - self._start)
return self._elapsed
[docs] def elapsed(self):
"""Return elapsed time in seconds since timer was started
Can be used without stopping the timer
Returns
-------
float
Seconds since timer was started
"""
return time.time() - self._start
[docs] def get_string(self, elapsed=None):
"""Get elapsed time in a string format
Parameters
----------
elapsed : float
Elapsed time in seconds
Default value "None"
Returns
-------
str
Time delta between start and stop
"""
if elapsed is None:
elapsed = (time.time() - self._start)
return str(datetime.timedelta(seconds=elapsed))
def __enter__(self):
self.start()
def __exit__(self, type, value, traceback):
self.stop()