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

    if (fn is None):
        def decorator(fn):
            return profile(fn, skip=skip, filename=filename, immediate=immediate, dirs=dirs, sort=sort, entries=entries, profiler=profiler)
        return decorator
    if isinstance(profiler, str):
        profiler = [profiler]
    for p in profiler:
        if (p in AVAILABLE_PROFILERS):
            profiler_class = AVAILABLE_PROFILERS[p]
            break
    else:
        raise ValueError(('only    these    profilers    are    available:    %s' % ',    '.join(AVAILABLE_PROFILERS)))
    fp = profiler_class(fn, skip=skip, filename=filename, immediate=immediate, dirs=dirs, sort=sort, entries=entries)
    def new_fn(*args, **kw):
        return fp(*args, **kw)
    new_fn.__doc__ = fn.__doc__
    new_fn.__name__ = fn.__name__
    new_fn.__dict__ = fn.__dict__
    new_fn.__module__ = fn.__module__
    return new_fn

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

def profile(fn=None, skip=0, filename=None, immediate=False, dirs=False, sort=None, entries=40, profiler=('cProfile', 'profile', 'hotshot')):