parameters: (self, source, name, hook)
docstring: Registers a new hook for the given source with the given hook name.
          :param source: source of the hook, i.e. plugin name
          :param name: name of the hook
          :param hook: hook function
docstring_summary: Registers a new hook for the given source with the given hook name.
          :param source: source of the hook, i.e. plugin name
          :param name: name of the hook
          :param hook: hook function
docstring_tokens: Registers a new hook for the given source with the given hook name . : param source : source of the hook i . e . plugin name : param name : name of the hook : param hook : hook function
function: def register(self, source, name, hook):
          """ Registers a new hook for the given source with the given hook name.
          :param source: source of the hook, i.e. plugin name
          :param name: name of the hook
          :param hook: hook function
          """
          LOGGER.debug("Registering new hook for {}: {} {}".format(source, name, hook))
          if not hook in self.hooks[name][source]:
              self.hooks[name][source].append(hook)
          else:
              LOGGER.debug("Hook already registered, skipping...")
function_tokens: def register ( self , source , name , hook ) : LOGGER . debug ( "Registering new hook for {}: {} {}" . format ( source , name , hook ) ) if not hook in self . hooks [ name ] [ source ] : self . hooks [ name ] [ source ] . append ( hook ) else : LOGGER . debug ( "Hook already registered, skipping..." )