| """ | |
| Monitoring utilities for tracking execution timing. | |
| """ | |
| from dataclasses import dataclass | |
| __all__ = ["Timing"] | |
| class Timing: | |
| """Timing information for a step or run.""" | |
| start_time: float | |
| end_time: float | None = None | |
| 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})" | |