From 0e451d3b3bf899b3d9ac0c38e3c3cd9d9be170ba Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Fri, 16 Jul 2021 21:43:11 -0700 Subject: Rename timer; add a test for OutputContext. --- stopwatch.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 stopwatch.py (limited to 'stopwatch.py') 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 -- cgit v1.3