def dispatch_hook(key, hooks, hook_data, **kwargs):
 hooks = (hooks or dict())
 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

def dispatch_hook ( key , hooks , hook_data , ** kwargs ) : hooks = ( hooks or dict ( ) ) 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
dispatches a hook dictionary on a given piece of data .