def _update_plot(self, plot, pane): from holoviews.core.util import cross_index, wrap_tuple_streams widgets = self.widget_box.objects if not widgets: return elif self.widget_type == 'scrubber': key = cross_index([v for v in self._values.values()], widgets[0].value) else: key = tuple(w.value for w in widgets) if plot.dynamic: widget_dims = [w.name for w in widgets] key = [key[widget_dims.index(kdim)] if kdim in widget_dims else None for kdim in plot.dimensions] key = wrap_tuple_streams(tuple(key), plot.dimensions, plot.streams) if plot.backend == 'bokeh': if plot.comm or state._unblocked(plot.document): with unlocked(): plot.update(key) if plot.comm and 'embedded' not in plot.root.tags: plot.push() else: if plot.document.session_context: plot.document.add_next_tick_callback(partial(plot.update, key)) else: plot.update(key) else: plot.update(key) if hasattr(plot.renderer, 'get_plot_state'): pane.object = plot.renderer.get_plot_state(plot) else: # Compatibility with holoviews<1.13.0 pane.object = plot.state
def test_no_streams_two_stream_substitution(self): result = wrap_tuple_streams( (None, None), [Dimension('x'), Dimension('y')], [PointerXY(x=0, y=5)]) self.assertEqual(result, (0, 5))
def test_no_streams_none_value(self): result = wrap_tuple_streams( (1, None), [Dimension('x'), Dimension('y')], []) self.assertEqual(result, (1, None))
def test_no_streams_one_stream_substitution(self): result = wrap_tuple_streams( (None, 3), [Dimension('x'), Dimension('y')], [PointerXY(x=-5, y=10)]) self.assertEqual(result, (-5, 3))
def test_no_streams(self): result = wrap_tuple_streams((1, 2), [], []) self.assertEqual(result, (1, 2))
def test_no_streams_two_kdims(self): result = wrap_tuple_streams( (1, 2), [Dimension('x'), Dimension('y')], []) self.assertEqual(result, (1, 2))
def test_no_streams_two_stream_substitution(self): result = wrap_tuple_streams((None,None), [Dimension('x'), Dimension('y')], [PointerXY(x=0,y=5)]) self.assertEqual(result, (0,5))
def test_no_streams_one_stream_substitution(self): result = wrap_tuple_streams((None,3), [Dimension('x'), Dimension('y')], [PointerXY(x=-5,y=10)]) self.assertEqual(result, (-5,3))
def test_no_streams_none_value(self): result = wrap_tuple_streams((1,None), [Dimension('x'), Dimension('y')], []) self.assertEqual(result, (1,None))
def test_no_streams_two_kdims(self): result = wrap_tuple_streams((1,2), [Dimension('x'), Dimension('y')], []) self.assertEqual(result, (1,2))
def test_no_streams(self): result = wrap_tuple_streams((1,2), [],[]) self.assertEqual(result, (1,2))