mirror of
https://github.com/nihilvux/bancho.py.git
synced 2025-09-16 10:38:39 -07:00
28 lines
726 B
Python
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
|