code: def _init_tools(self, element, callbacks=[]):
          
          hover_tools = {}
          init_tools, tool_types = [], []
          for key, subplot in self.subplots.items():
              el = element.get(key)
              if el is not None:
                  el_tools = subplot._init_tools(el, self.callbacks)
                  for tool in el_tools:
                      if isinstance(tool, util.basestring):
                          tool_type = TOOL_TYPES.get(tool)
                      else:
                          tool_type = type(tool)
                      if isinstance(tool, tools.HoverTool):
                          tooltips = tuple(tool.tooltips) if tool.tooltips else ()
                          if tooltips in hover_tools:
                              continue
                          else:
                              hover_tools[tooltips] = tool
                      elif tool_type in tool_types:
                          continue
                      else:
                          tool_types.append(tool_type)
                      init_tools.append(tool)
          self.handles['hover_tools'] = hover_tools
          return init_tools
docs: Processes the list of tools to be supplied to the plot.