diff options
Diffstat (limited to 'stopwatch.py')
| -rw-r--r-- | stopwatch.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/stopwatch.py b/stopwatch.py new file mode 100644 index 0000000..752c7ed --- /dev/null +++ b/stopwatch.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +import time +from typing import Callable + + +class Timer(object): + """ + with timer.Timer() as t: + do_the_thing() + + walltime = t() + print(f'That took {walltime}s.') + """ + + def __init__(self) -> None: + self.start = None + self.end = None + pass + + def __enter__(self) -> Callable[[], float]: + self.start = time.perf_counter() + self.end = 0.0 + return lambda: self.end - self.start + + def __exit__(self, *args) -> bool: + self.end = time.perf_counter() + return True |
