Files
bancho.py/app/timer.py
2025-04-04 21:30:31 +09:00

28 lines
726 B
Python

from __future__ import annotations
import time
from types import TracebackType
class Timer:
def __init__(self) -> None:
self.start_time: float | None = None
self.end_time: float | None = None
def __enter__(self) -> Timer:
self.start_time = time.time()
return self
def __exit__(
self,
exc_type: type[BaseException] | None,
exc: BaseException | None,
traceback: TracebackType | None,
) -> None:
self.end_time = time.time()
def elapsed(self) -> float:
if self.start_time is None or self.end_time is None:
raise ValueError("Timer has not been started or stopped.")
return self.end_time - self.start_time