Add doctests to some of this stuff.
[python_utils.git] / stopwatch.py
index 1326cb1fec8ffb41db461f99aac59372ded655f1..cdd405b558213a9fb7c0ca38eec72ad41ba47a14 100644 (file)
@@ -6,11 +6,15 @@ from typing import Callable
 
 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:
@@ -18,6 +22,9 @@ class Timer(object):
         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