From 6f07c5e2552472485d477c6495d3ac67d636a51d Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Sun, 9 Jan 2022 11:31:15 -0500 Subject: [PATCH] Drop 'ohlc' array usage from UI components --- piker/ui/_axes.py | 27 ++++++++++++++++++++------- piker/ui/_cursor.py | 4 ++-- piker/ui/_editors.py | 3 ++- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/piker/ui/_axes.py b/piker/ui/_axes.py index 53707407..67df0138 100644 --- a/piker/ui/_axes.py +++ b/piker/ui/_axes.py @@ -18,6 +18,7 @@ Chart axes graphics and behavior. """ +import functools from typing import List, Tuple, Optional from math import floor @@ -33,17 +34,18 @@ _axis_pen = pg.mkPen(hcolor('bracket')) class Axis(pg.AxisItem): - """A better axis that sizes tick contents considering font size. + ''' + A better axis that sizes tick contents considering font size. - """ + ''' def __init__( self, linkedsplits, typical_max_str: str = '100 000.000', min_tick: int = 2, **kwargs - ) -> None: + ) -> None: super().__init__(**kwargs) # XXX: pretty sure this makes things slower @@ -95,7 +97,12 @@ class PriceAxis(Axis): # XXX: drop for now since it just eats up h space - def tickStrings(self, vals, scale, spacing): + def tickStrings( + self, + vals, + scale, + spacing, + ): # TODO: figure out how to enforce min tick spacing by passing # it into the parent type @@ -131,9 +138,8 @@ class DynamicDateAxis(Axis): indexes: List[int], ) -> List[str]: - # try: chart = self.linkedsplits.chart - bars = chart._arrays['ohlc'] + bars = chart._arrays[chart.name] shm = self.linkedsplits.chart._shm first = shm._first.value @@ -156,7 +162,14 @@ class DynamicDateAxis(Axis): delay = times[-1] - times[-2] return dts.strftime(self.tick_tpl[delay]) - def tickStrings(self, values: List[float], scale, spacing): + def tickStrings( + self, + values: tuple[float], + scale, + spacing, + ): + # info = self.tickStrings.cache_info() + # print(info) return self._indexes_to_timestrs(values) diff --git a/piker/ui/_cursor.py b/piker/ui/_cursor.py index cac2f0b9..d9a4e45a 100644 --- a/piker/ui/_cursor.py +++ b/piker/ui/_cursor.py @@ -276,7 +276,7 @@ class ContentsLabels: ) -> ContentsLabel: label = ContentsLabel( - view=chart._vb, + view=chart.view, anchor_at=anchor_at, ) self._labels.append( @@ -438,7 +438,7 @@ class Cursor(pg.GraphicsObject): # the current sample under the mouse cursor = LineDot( curve, - index=plot._arrays['ohlc'][-1]['index'], + index=plot._arrays[plot.name][-1]['index'], plot=plot ) plot.addItem(cursor) diff --git a/piker/ui/_editors.py b/piker/ui/_editors.py index 883f7a15..9a99d2f7 100644 --- a/piker/ui/_editors.py +++ b/piker/ui/_editors.py @@ -342,7 +342,8 @@ class SelectRect(QtGui.QGraphicsRectItem): ixmn, ixmx = round(xmn), round(xmx) nbars = ixmx - ixmn + 1 - data = self._chart._arrays['ohlc'][ixmn:ixmx] + chart = self._chart + data = chart._arrays[chart.name][ixmn:ixmx] if len(data): std = data['close'].std()