projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adds unittest.
[python_utils.git]
/
stopwatch.py
diff --git
a/stopwatch.py
b/stopwatch.py
index 1326cb1fec8ffb41db461f99aac59372ded655f1..c6c154c124482c9bf9c9e20950a9cca0fb22cb1d 100644
(file)
--- a/
stopwatch.py
+++ b/
stopwatch.py
@@
-1,27
+1,34
@@
#!/usr/bin/env python3
import time
#!/usr/bin/env python3
import time
-from typing import Callable
+from typing import Callable
, Optional
class Timer(object):
"""
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 stopwatch.Timer() as t:
+ do_the_thing()
+
+ walltime = t()
+ print(f'That took {walltime} seconds.')
"""
def __init__(self) -> None:
"""
def __init__(self) -> None:
- self.start =
None
- self.end =
None
+ self.start =
0.0
+ self.end =
0.0
def __enter__(self) -> Callable[[], float]:
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
self.start = time.perf_counter()
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
self.end = time.perf_counter()
return None # don't suppress exceptions