Spaces:
Runtime error
Runtime error
Download src/common/timer.py from bible-teller/bible-guidechat: direct link, hf CLI and curl.
- Browser
- Download file 1.1 kB
-
https://huggingface.co/spaces/bible-teller/bible-guidechat/resolve/main/src/common/timer.py
- Command line
-
hf download hf://spaces/bible-teller/bible-guidechat/src/common/timer.py
-
curl -L -o timer.py https://huggingface.co/spaces/bible-teller/bible-guidechat/resolve/main/src/common/timer.py
1.1 kB
| """Timer class. | |
| Context and decorator form timer. | |
| """ | |
| import contextlib | |
| from functools import wraps | |
| from time import perf_counter | |
| from src.common.logger import log_success, log_info | |
| class Timer(contextlib.ContextDecorator): | |
| """Timer. | |
| Examples: | |
| >>> with Timer('Code1'): | |
| ... sleep(1) | |
| * Code1 | 1.00s (0.02m) | |
| """ | |
| def __init__(self, name="Elapsed time"): | |
| self.name = name | |
| def __enter__(self): | |
| log_info(f"{'[START] ' + self.name:15}") | |
| self.start_time = perf_counter() | |
| return self | |
| def __exit__(self, *exc): | |
| elapsed_time = perf_counter() - self.start_time | |
| log_success(f"{self.name:15} | {elapsed_time:.2f}s ({elapsed_time/60:.2f}m)") | |
| return False | |
| def T(fn: callable) -> callable: | |
| """Timer decorator. | |
| Example: | |
| >>> @T | |
| >>> def f(): | |
| ... sleep(1) | |
| * Elapsed time | 1.00s (0.02m) | |
| """ | |
| def _log(*args, **kwargs): | |
| with Timer(fn.__name__): | |
| rst = fn(*args, **kwargs) | |
| return rst | |
| return _log | |