import time from collections import deque from app.sample import Sample class HistoryStore: def __init__(self, maxlen: int) -> None: self._buf: deque[Sample] = deque(maxlen=maxlen) def record(self, sample: Sample) -> None: sample.ts = time.time() self._buf.append(sample) def snapshot(self) -> list[Sample]: return list(self._buf) def latest(self) -> Sample | None: return self._buf[-1] if self._buf else None def __len__(self) -> int: return len(self._buf)