class Timer(object):
"""
- with timer.Timer() as t:
- do_the_thing()
+ A stopwatch to time how long something takes (walltime).
- walltime = t()
- print(f'That took {walltime}s.')
+ e.g.
+
+ with timer.Timer() as t:
+ do_the_thing()
+
+ walltime = t()
+ print(f'That took {walltime} seconds.')
"""
def __init__(self) -> None:
self.end = None
def __enter__(self) -> Callable[[], float]:
+ """Returns a functor that, when called, returns the walltime of the
+ operation in seconds.
+ """
self.start = time.perf_counter()
self.end = 0.0
return lambda: self.end - self.start