X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=stopwatch.py;h=fa4f2b52f54998bb029f7e14433e5451abd67812;hb=e8fbbb7306430478dec55d2c963eed116d8330cc;hp=cdd405b558213a9fb7c0ca38eec72ad41ba47a14;hpb=709370b2198e09f1dbe195fe8813602a3125b7f6;p=python_utils.git diff --git a/stopwatch.py b/stopwatch.py index cdd405b..fa4f2b5 100644 --- a/stopwatch.py +++ b/stopwatch.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 +"""A simple stopwatch decorator / context for timing things.""" + import time -from typing import Callable +from typing import Callable, Optional class Timer(object): @@ -10,7 +12,7 @@ class Timer(object): e.g. - with timer.Timer() as t: + with stopwatch.Timer() as t: do_the_thing() walltime = t() @@ -18,8 +20,8 @@ class Timer(object): """ def __init__(self) -> None: - self.start = None - self.end = None + self.start = 0.0 + self.end = 0.0 def __enter__(self) -> Callable[[], float]: """Returns a functor that, when called, returns the walltime of the @@ -29,6 +31,6 @@ class Timer(object): self.end = 0.0 return lambda: self.end - self.start - def __exit__(self, *args) -> bool: + def __exit__(self, *args) -> Optional[bool]: self.end = time.perf_counter() return None # don't suppress exceptions