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

    import warnings
    from Bio import BiopythonDeprecationWarning
    warnings.warn('draw_graphviz    is    deprecated.
   use    Bio.Phylo.draw    instead', BiopythonDeprecationWarning)
    try:
        import networkx
    except ImportError:
        raise MissingPythonDependencyError('Install    NetworkX    if    you    want    to    use    to_networkx.')
    G = to_networkx(tree)
    try:
        Gi = networkx.convert_node_labels_to_integers(G, label_attribute='label')
        int_labels = {}
        for (integer, nodeattrs) in Gi.node.items():
            int_labels[nodeattrs['label']] = integer
    except TypeError:
        Gi = networkx.convert_node_labels_to_integers(G, discard_old_labels=False)
        int_labels = Gi.node_labels
    try:
        if hasattr(networkx, 'graphviz_layout'):
            graphviz_layout = networkx.graphviz_layout
        else:
            graphviz_layout = networkx.drawing.nx_agraph.graphviz_layout
        posi = graphviz_layout(Gi, prog, args=args)
    except ImportError:
        raise MissingPythonDependencyError('Install    PyGraphviz    or    pydot    if    you    want    to    use    draw_graphviz.')
    def get_label_mapping(G, selection):
        'Apply    the    user-specified    node    relabeling.'
        for node in G.nodes():
            if ((selection is None) or (node in selection)):
                try:
                    label = label_func(node)
                    if (label not in (None, node.__class__.__name__)):
                        (yield (node, label))
                except (LookupError, AttributeError, ValueError):
                    pass
    if ('nodelist' in kwargs):
        labels = dict(get_label_mapping(G, set(kwargs['nodelist'])))
    else:
        labels = dict(get_label_mapping(G, None))
    kwargs['nodelist'] = list(labels.keys())
    if ('edge_color' not in kwargs):
        kwargs['edge_color'] = [((isinstance(e[2], dict) and e[2].get('color', 'k')) or 'k') for e in G.edges(data=True)]
    if ('width' not in kwargs):
       ...

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

def draw_graphviz(tree, label_func=str, prog='twopi', args='', node_color='#c0deff', **kwargs):