from __future__ import annotations from datetime import UTC, datetime class Clock: """ Abstraction over time for testability. """ def now(self) -> datetime: """ Current UTC datetime. """ return datetime.now(UTC) class FixedClock(Clock): """ Fixed clock for deterministic testing. """ def __init__(self, now: datetime): self._now = now def now(self) -> datetime: return self._now