code: def run_hook(self, hook, *args, **kwargs):
          
          for plugin in self.raw_plugins:
              if hasattr(plugin, hook):
                  self.logger.debug('Calling hook {0} in plugin {1}'.format(hook, plugin.__name__))
                  getattr(plugin, hook)(*args, **kwargs)
docs: Loop over all plugins and invoke function `hook` with `args` and
          `kwargs` in each of them. If the plugin does not have the function, it
          is skipped.