X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=stopwatch.py;fp=stopwatch.py;h=ae8e01aa18452ed932ef589b9047c7f0c68ab58a;hb=2f5b47c8b30d1b7d86443391332be2f3805cdafd;hp=fa4f2b52f54998bb029f7e14433e5451abd67812;hpb=4b04fd1d5a14c5c4c7e0985e5376b4e2f879ef06;p=python_utils.git diff --git a/stopwatch.py b/stopwatch.py index fa4f2b5..ae8e01a 100644 --- a/stopwatch.py +++ b/stopwatch.py @@ -2,11 +2,12 @@ """A simple stopwatch decorator / context for timing things.""" +import contextlib import time -from typing import Callable, Optional +from typing import Callable, Literal -class Timer(object): +class Timer(contextlib.AbstractContextManager): """ A stopwatch to time how long something takes (walltime). @@ -31,6 +32,6 @@ class Timer(object): self.end = 0.0 return lambda: self.end - self.start - def __exit__(self, *args) -> Optional[bool]: + def __exit__(self, *args) -> Literal[False]: self.end = time.perf_counter() - return None # don't suppress exceptions + return False