summaryrefslogtreecommitdiff
path: root/stopwatch.py
diff options
context:
space:
mode:
Diffstat (limited to 'stopwatch.py')
-rw-r--r--stopwatch.py28
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