human
Here's a good function header given the following:
I wrote the below code

    def logerror(failure, recv):
        if ((dont_log is None) or (not isinstance(failure.value, dont_log))):
            logger.error('Error    caught    on    signal    handler:    %(receiver)s', {'receiver': recv}, exc_info=failure_to_exc_info(failure), extra={'spider': spider})
        return failure
    dont_log = named.pop('dont_log', None)
    spider = named.get('spider', None)
    dfds = []
    for receiver in liveReceivers(getAllReceivers(sender, signal)):
        d = maybeDeferred(robustApply, receiver, signal=signal, sender=sender, *arguments, **named)
        d.addErrback(logerror, receiver)
        d.addBoth((lambda result: (receiver, result)))
        dfds.append(d)
    d = DeferredList(dfds)
    d.addCallback((lambda out: [x[1] for x in out]))
    return d

What's a good function header?
assistant
#Here's a good function header.

def send_catch_log_deferred(signal=Any, sender=Anonymous, *arguments, **named):