Skip to content

Commit

Permalink
Move ui._compression/._pathops to .data subpkg
Browse files Browse the repository at this point in the history
Since these modules no longer contain Qt specific code we might
as well include them in the data sub-package.

Also, add `IncrementalFormatter.index_field` as single point to def the
indexing field that should be used for all x-domain graphics-data
rendering.
  • Loading branch information
goodboy committed Nov 24, 2022
1 parent f1deae9 commit 8ee9644
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 27 deletions.
File renamed without changes.
31 changes: 9 additions & 22 deletions piker/ui/_pathops.py → piker/data/_pathops.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
# from PyQt5 import QtGui
# from PyQt5.QtCore import QLineF, QPointF

from ..data._sharedmem import (
from ._sharedmem import (
ShmArray,
)
# from .._profile import pg_profile_enabled, ms_slower_then
Expand All @@ -41,26 +41,11 @@

if TYPE_CHECKING:
from ._render import (
Renderer,
Viz,
)
from .._profile import Profiler


def by_index_and_key(
renderer: Renderer,
array: np.ndarray,
array_key: str,
vr: tuple[int, int],

) -> tuple[
np.ndarray,
np.ndarray,
np.ndarray,
]:
return array['index'], array[array_key], 'all'


class IncrementalFormatter(msgspec.Struct):
'''
Incrementally updating, pre-path-graphics tracking, formatter.
Expand All @@ -73,6 +58,7 @@ class IncrementalFormatter(msgspec.Struct):
'''
shm: ShmArray
viz: Viz
index_field: str = 'index'

# last read from shm (usually due to an update call)
_last_read: tuple[
Expand Down Expand Up @@ -406,7 +392,6 @@ def allocate_xy_nd(
self,
src_shm: ShmArray,
data_field: str,
index_field: str = 'index',

) -> tuple[
np.ndarray, # x
Expand All @@ -420,7 +405,7 @@ def allocate_xy_nd(
'''
y_nd = src_shm._array[data_field].copy()
x_nd = src_shm._array[index_field].copy()
x_nd = src_shm._array[self.index_field].copy()
return x_nd, y_nd

# XXX: was ``.update_xy()``
Expand Down Expand Up @@ -477,7 +462,7 @@ def format_xy_nd_to_1d(
'''
return (
array['index'],
array[self.index_field],
array[array_key],

# 1d connection array or style-key to
Expand Down Expand Up @@ -511,7 +496,7 @@ def allocate_xy_nd(
# generate an flat-interpolated x-domain
x_nd = (
np.broadcast_to(
ohlc_shm._array['index'][:, None],
ohlc_shm._array[self.index_field][:, None],
(
ohlc_shm._array.size,
# 4, # only ohlc
Expand Down Expand Up @@ -542,6 +527,7 @@ def path_arrays_from_ohlc(
data: np.ndarray,
start: int64,
bar_gap: float64 = 0.43,
index_field: str = 'index',

) -> tuple[
np.ndarray,
Expand Down Expand Up @@ -573,7 +559,7 @@ def path_arrays_from_ohlc(
high = q['high']
low = q['low']
close = q['close']
index = float64(q['index'])
index = float64(q[index_field])

istart = i * 6
istop = istart + 6
Expand Down Expand Up @@ -630,6 +616,7 @@ def format_xy_nd_to_1d(
array,
start,
bar_gap=w,
index_field=self.index_field,
)
return x, y, c

Expand Down Expand Up @@ -722,7 +709,7 @@ def allocate_xy_nd(
for use by path graphics generation.
'''
i = shm._array['index'].copy()
i = shm._array[self.index_field].copy()
out = shm._array[data_field].copy()

x_out = np.broadcast_to(
Expand Down
10 changes: 5 additions & 5 deletions piker/ui/_render.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,17 @@
ShmArray,
)
from ..data.feed import Flume
from .._profile import (
pg_profile_enabled,
# ms_slower_then,
)
from ._pathops import (
from ..data._pathops import (
IncrementalFormatter,
OHLCBarsFmtr, # Plain OHLC renderer
OHLCBarsAsCurveFmtr, # OHLC converted to line
StepCurveFmtr, # "step" curve (like for vlm)
xy_downsample,
)
from .._profile import (
pg_profile_enabled,
# ms_slower_then,
)
from ._ohlc import (
BarItems,
# bar_from_ohlc_row,
Expand Down

0 comments on commit 8ee9644

Please sign in to comment.