Drop 'ohlc' array usage from UI components
							parent
							
								
									65c3cc5f5f
								
							
						
					
					
						commit
						6f07c5e255
					
				| 
						 | 
					@ -18,6 +18,7 @@
 | 
				
			||||||
Chart axes graphics and behavior.
 | 
					Chart axes graphics and behavior.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 | 
					import functools
 | 
				
			||||||
from typing import List, Tuple, Optional
 | 
					from typing import List, Tuple, Optional
 | 
				
			||||||
from math import floor
 | 
					from math import floor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,17 +34,18 @@ _axis_pen = pg.mkPen(hcolor('bracket'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Axis(pg.AxisItem):
 | 
					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__(
 | 
					    def __init__(
 | 
				
			||||||
        self,
 | 
					        self,
 | 
				
			||||||
        linkedsplits,
 | 
					        linkedsplits,
 | 
				
			||||||
        typical_max_str: str = '100 000.000',
 | 
					        typical_max_str: str = '100 000.000',
 | 
				
			||||||
        min_tick: int = 2,
 | 
					        min_tick: int = 2,
 | 
				
			||||||
        **kwargs
 | 
					        **kwargs
 | 
				
			||||||
    ) -> None:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ) -> None:
 | 
				
			||||||
        super().__init__(**kwargs)
 | 
					        super().__init__(**kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # XXX: pretty sure this makes things slower
 | 
					        # 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
 | 
					    # 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
 | 
					        # TODO: figure out how to enforce min tick spacing by passing
 | 
				
			||||||
        # it into the parent type
 | 
					        # it into the parent type
 | 
				
			||||||
| 
						 | 
					@ -131,9 +138,8 @@ class DynamicDateAxis(Axis):
 | 
				
			||||||
        indexes: List[int],
 | 
					        indexes: List[int],
 | 
				
			||||||
    ) -> List[str]:
 | 
					    ) -> List[str]:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # try:
 | 
					 | 
				
			||||||
        chart = self.linkedsplits.chart
 | 
					        chart = self.linkedsplits.chart
 | 
				
			||||||
        bars = chart._arrays['ohlc']
 | 
					        bars = chart._arrays[chart.name]
 | 
				
			||||||
        shm = self.linkedsplits.chart._shm
 | 
					        shm = self.linkedsplits.chart._shm
 | 
				
			||||||
        first = shm._first.value
 | 
					        first = shm._first.value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -156,7 +162,14 @@ class DynamicDateAxis(Axis):
 | 
				
			||||||
        delay = times[-1] - times[-2]
 | 
					        delay = times[-1] - times[-2]
 | 
				
			||||||
        return dts.strftime(self.tick_tpl[delay])
 | 
					        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)
 | 
					        return self._indexes_to_timestrs(values)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -276,7 +276,7 @@ class ContentsLabels:
 | 
				
			||||||
    ) -> ContentsLabel:
 | 
					    ) -> ContentsLabel:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        label = ContentsLabel(
 | 
					        label = ContentsLabel(
 | 
				
			||||||
            view=chart._vb,
 | 
					            view=chart.view,
 | 
				
			||||||
            anchor_at=anchor_at,
 | 
					            anchor_at=anchor_at,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        self._labels.append(
 | 
					        self._labels.append(
 | 
				
			||||||
| 
						 | 
					@ -438,7 +438,7 @@ class Cursor(pg.GraphicsObject):
 | 
				
			||||||
        # the current sample under the mouse
 | 
					        # the current sample under the mouse
 | 
				
			||||||
        cursor = LineDot(
 | 
					        cursor = LineDot(
 | 
				
			||||||
            curve,
 | 
					            curve,
 | 
				
			||||||
            index=plot._arrays['ohlc'][-1]['index'],
 | 
					            index=plot._arrays[plot.name][-1]['index'],
 | 
				
			||||||
            plot=plot
 | 
					            plot=plot
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        plot.addItem(cursor)
 | 
					        plot.addItem(cursor)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -342,7 +342,8 @@ class SelectRect(QtGui.QGraphicsRectItem):
 | 
				
			||||||
        ixmn, ixmx = round(xmn), round(xmx)
 | 
					        ixmn, ixmx = round(xmn), round(xmx)
 | 
				
			||||||
        nbars = ixmx - ixmn + 1
 | 
					        nbars = ixmx - ixmn + 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        data = self._chart._arrays['ohlc'][ixmn:ixmx]
 | 
					        chart = self._chart
 | 
				
			||||||
 | 
					        data = chart._arrays[chart.name][ixmn:ixmx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if len(data):
 | 
					        if len(data):
 | 
				
			||||||
            std = data['close'].std()
 | 
					            std = data['close'].std()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue