aidial_adapter_vertexai/utils/timer.py (22 lines of code) (raw):

import time from typing import Callable class Timer: start: float format: str printer: Callable[[str], None] def __init__( self, format: str = "Elapsed time: {time}", printer: Callable[[str], None] = print, ): self.start = time.perf_counter() self.format = format self.printer = printer def stop(self) -> float: return time.perf_counter() - self.start def __str__(self) -> str: return f"{self.stop():.3f}s" def __enter__(self): return def __exit__(self, type, value, traceback): self.printer(self.format.format(time=self))