""" Monitoring utilities for tracking execution timing. """ from dataclasses import dataclass __all__ = ["Timing"] @dataclass class Timing: """Timing information for a step or run.""" start_time: float end_time: float | None = None @property def duration(self): return None if self.end_time is None else self.end_time - self.start_time def dict(self): return { "start_time": self.start_time, "end_time": self.end_time, "duration": self.duration, } def __repr__(self) -> str: return f"Timing(start_time={self.start_time}, end_time={self.end_time}, duration={self.duration})"