Closed philippjfr closed 1 week ago
The backtracking behavior was fixed in https://github.com/holoviz/panel/pull/7128
With range handling:
Attention: Patch coverage is 76.40449%
with 21 lines
in your changes missing coverage. Please review.
Project coverage is 88.48%. Comparing base (
3b3f10f
) to head (62a20ab
). Report is 5 commits behind head on main.
Files with missing lines | Patch % | Lines |
---|---|---|
holoviews/plotting/bokeh/element.py | 65.71% | 12 Missing :warning: |
holoviews/plotting/bokeh/plot.py | 0.00% | 9 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
There still appears to be a race condition in bokeh where if a stream event arrives while the frontend is rendering it can cause "backtracking" glitches.TODO:
Code
```python import asyncio import pandas as pd import numpy as np import holoviews as hv hv.extension('bokeh') nchannels = 25 buffer = hv.streams.Buffer(data=pd.DataFrame(np.random.randn(10, nchannels).cumsum(axis=1), columns=[chr(65+i) for i in range(nchannels)])) def out(data): return hv.NdOverlay( {chr(65+i): hv.Curve(data, 'index', (chr(65+i), 'Amplitude')).opts(subcoordinate_y=True) for i in range(nchannels)} ) dmap = hv.DynamicMap(out, streams=[buffer]).opts(legend_position='right', legend_cols=2, responsive=True, min_height=600) pane = pn.pane.HoloViews(dmap) async def stream(event): for i in range(1, 1000): buffer.event(data=pd.DataFrame(np.random.randn(10, nchannels).cumsum(axis=1), columns=[chr(65+i) for i in range(nchannels)], index=np.arange(i*10, i*10+10))) await asyncio.sleep(0.01) pn.Column(pn.widgets.Button(on_click=stream, name='Stream'), pane).servable() ```