diff --git a/piker/data/_formatters.py b/piker/data/_formatters.py index 173d7552..5d1d436b 100644 --- a/piker/data/_formatters.py +++ b/piker/data/_formatters.py @@ -99,6 +99,16 @@ class IncrementalFormatter(msgspec.Struct): _last_vr: tuple[float, float] | None = None _last_ivdr: tuple[float, float] | None = None + _index_step_size: float = None + + @property + def index_step_size(self) -> float: + ''' + Readonly value computed on first ``.diff()`` call. + + ''' + return self._index_step_size + def __repr__(self) -> str: msg = ( f'{type(self)}: ->\n\n' @@ -172,6 +182,9 @@ class IncrementalFormatter(msgspec.Struct): # set us in a zero-to-append state nd_stop = self.xy_nd_stop = src_stop + align_index = array[self.index_field] + self._index_step_size = align_index[-1] - align_index[-2] + # compute the length diffs between the first/last index entry in # the input data and the last indexes we have on record from the # last time we updated the curve index. @@ -559,8 +572,7 @@ class OHLCBarsFmtr(IncrementalFormatter): x, y, c = path_arrays_from_ohlc( array, start, - # self.index_field, - bar_gap=w, + bar_gap=w * self.index_step_size, ) return x, y, c