parameters: (key, hooks, hook_data, **kwargs)
return_statement: return hook_data
docstring: Dispatches a hook dictionary on a given piece of data.
docstring_summary: Dispatches a hook dictionary on a given piece of data.
docstring_tokens: Dispatches a hook dictionary on a given piece of data .
function: def dispatch_hook(key, hooks, hook_data, **kwargs):
      """Dispatches a hook dictionary on a given piece of data."""
      hooks = hooks or {}
      hooks = hooks.get(key)
      if hooks:
          if hasattr(hooks, '__call__'):
              hooks = [hooks]
          for hook in hooks:
              _hook_data = hook(hook_data, **kwargs)
              if _hook_data is not None:
                  hook_data = _hook_data
      return hook_data
function_tokens: def dispatch_hook ( key , hooks , hook_data , * * kwargs ) : hooks = hooks or { } hooks = hooks . get ( key ) if hooks : if hasattr ( hooks , '__call__' ) : hooks = [ hooks ] for hook in hooks : _hook_data = hook ( hook_data , * * kwargs ) if _hook_data is not None : hook_data = _hook_data return hook_data