Source code for eotransform.sinks.with_performance_clock

from typing import TypeVar

from eotransform.protocol.sink import Sink
from eotransform.utilities.profiling import PerformanceClock

ClockedSinkT = TypeVar("ClockedSinkT")


[docs]class WithPerformanceClock(Sink[ClockedSinkT]): def __init__(self, wrapped: Sink, clock: PerformanceClock): self._wrapped = wrapped self._clock = clock def __call__(self, x: ClockedSinkT) -> None: with self._clock.measure(): return self._wrapped(x)