Repository: bokeh/bokeh

Issue:
Add an option to remove the `help` button of the bokeh toolbar
It's currently possible to set on or off any component of the bokeh toolbar, except the `help` button.

The only way to remove it is to completely disable the toolbar.

From [this](https://groups.google.com/a/continuum.io/forum/#!topic/bokeh/RftDek1c70s) google groups question.



Discussion:

Resolving patch:
diff --git a/bokeh/models/tools.py b/bokeh/models/tools.py
--- a/bokeh/models/tools.py
+++ b/bokeh/models/tools.py
@@ -412,3 +412,18 @@ class HoverTool(Tool):
         the ``Rect`` and ``Quad`` glyphs are supported.
 
     """)
+
+class HelpTool(Tool):
+    """
+    The help tool is a widget designed to replace the hardcoded 'Help' link.
+    The hover text can be customized through the ``help_tooltip`` attribute
+    and the redirect site overridden as well. 
+    """
+
+    help_tooltip = String(help="""
+    Tooltip displayed when hovering over the help icon.
+    """)
+
+    redirect = String(help="""
+    Site to be redirected through upon click.
+    """)
\ No newline at end of file
diff --git a/bokeh/plotting.py b/bokeh/plotting.py
--- a/bokeh/plotting.py
+++ b/bokeh/plotting.py
@@ -36,7 +36,7 @@ def HBox(*args, **kwargs):
     return hplot(*args, **kwargs)
 
 
-DEFAULT_TOOLS = "pan,wheel_zoom,box_zoom,save,resize,reset"
+DEFAULT_TOOLS = "pan,wheel_zoom,box_zoom,save,resize,reset,help"
 
 class Figure(Plot):
     __subtype__ = "Figure"
diff --git a/bokeh/plotting_helpers.py b/bokeh/plotting_helpers.py
--- a/bokeh/plotting_helpers.py
+++ b/bokeh/plotting_helpers.py
@@ -12,7 +12,7 @@
 from .models import (
     BoxSelectionOverlay, BoxSelectTool, BoxZoomTool, CategoricalAxis,
     ColumnDataSource, RemoteSource, TapTool, CrosshairTool, DataRange1d, DatetimeAxis,
-    FactorRange, Grid, HoverTool, LassoSelectTool, Legend, LinearAxis,
+    FactorRange, Grid, HelpTool, HoverTool, LassoSelectTool, Legend, LinearAxis,
     LogAxis, PanTool, Plot, PolySelectTool,
     PreviewSaveTool, Range, Range1d, ResetTool, ResizeTool, Tool,
     WheelZoomTool)
@@ -243,6 +243,7 @@ def _get_num_minor_ticks(axis_class, num_minor_ticks):
     ]),
     "previewsave": lambda: PreviewSaveTool(),
     "reset": lambda: ResetTool(),
+    "help": lambda: HelpTool(),
 }
 
 def _tool_from_string(name):


Test patch:
diff --git a/bokeh/charts/tests/test_chart.py b/bokeh/charts/tests/test_chart.py
--- a/bokeh/charts/tests/test_chart.py
+++ b/bokeh/charts/tests/test_chart.py
@@ -25,7 +25,7 @@
     ColumnDataSource, Grid, GlyphRenderer, LinearAxis, Range1d, Ticker)
 from bokeh.models.ranges import FactorRange
 from bokeh.models.tools import (
-    BoxZoomTool, LassoSelectTool, PanTool, PreviewSaveTool, ResetTool,
+    BoxZoomTool, HelpTool, LassoSelectTool, PanTool, PreviewSaveTool, ResetTool,
     ResizeTool, WheelZoomTool)
 
 #-----------------------------------------------------------------------------
@@ -156,7 +156,7 @@ def test_chart_tools_linear(self, mock_warn):
             width=800, height=600, filename=False, server=False, notebook=False
         )
         expected = [
-            [PanTool,  WheelZoomTool, BoxZoomTool, PreviewSaveTool, ResizeTool, ResetTool],
+            [PanTool,  WheelZoomTool, BoxZoomTool, PreviewSaveTool, ResizeTool, ResetTool, HelpTool],
             [],
             [ResizeTool, PanTool,  BoxZoomTool, ResetTool, LassoSelectTool],
         ]