diff options
| author | Scott Gasch <[email protected]> | 2021-07-16 21:43:11 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2021-07-16 21:43:11 -0700 |
| commit | 0e451d3b3bf899b3d9ac0c38e3c3cd9d9be170ba (patch) | |
| tree | 09fb65e648652ac016ee90ead516f664b71beee0 /stopwatch.py | |
| parent | 97fbe845e5dfdbda22521117c1783e1fd8515952 (diff) | |
Rename timer; add a test for OutputContext.
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 |
