Skip to content

Commit

Permalink
Handle None renderers when merging HoverTool.renderers (#4856)
Browse files Browse the repository at this point in the history
* Handle None renderers when merging HoverTool.renderers

* Add test
  • Loading branch information
philippjfr authored Mar 3, 2021
1 parent d235b1c commit 0c1f7bb
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
2 changes: 1 addition & 1 deletion holoviews/plotting/bokeh/element.py
Original file line number Diff line number Diff line change
Expand Up @@ -2284,7 +2284,7 @@ def _merge_tools(self, subplot):
if tool:
tool_renderers = [] if tool.renderers == 'auto' else tool.renderers
hover_renderers = [] if hover.renderers == 'auto' else hover.renderers
renderers = tool_renderers + hover_renderers
renderers = [r for r in tool_renderers + hover_renderers if r is not None]
tool.renderers = list(util.unique_iterator(renderers))
if 'hover' not in self.handles:
self.handles['hover'] = tool
Expand Down
6 changes: 6 additions & 0 deletions holoviews/tests/plotting/bokeh/testoverlayplot.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ def test_hover_tool_instance_renderer_association(self):
self.assertIn(curve_plot.handles['glyph_renderer'], curve_plot.handles['hover'].renderers)
self.assertEqual(plot.handles['hover'].tooltips, tooltips)

def test_hover_tool_overlay_renderers(self):
overlay = Curve(range(2)).opts(tools=['hover']) * ErrorBars([]).opts(tools=['hover'])
plot = bokeh_renderer.get_plot(overlay)
self.assertEqual(len(plot.handles['hover'].renderers), 1)
self.assertEqual(plot.handles['hover'].tooltips, [('x', '@{x}'), ('y', '@{y}')])

def test_hover_tool_nested_overlay_renderers(self):
overlay1 = NdOverlay({0: Curve(range(2)), 1: Curve(range(3))}, kdims=['Test'])
overlay2 = NdOverlay({0: Curve(range(4)), 1: Curve(range(5))}, kdims=['Test'])
Expand Down

0 comments on commit 0c1f7bb

Please sign in to comment.