human
I wrote the below code

    if (not any(((arg is not None) for arg in [level, height, condition]))):
        raise ValueError('At    least    one    pruning    argument    must    be    supplied')
    level_check = height_check = condition_check = (lambda cl: False)
    if (level is not None):
        cluster_depth = cluster_depths(cluster)
        level_check = (lambda cl: (cluster_depth[cl] >= level))
    if (height is not None):
        height_check = (lambda cl: (cl.value.height <= height))
    if (condition is not None):
        condition_check = condition
    def check_all(cl):
        return (level_check(cl) or height_check(cl) or condition_check(cl))
    T = {}
    for node in postorder(cluster):
        if check_all(node):
            if node.is_leaf:
                T[node] = node
            else:
                T[node] = Tree(node.value, ())
        else:
            T[node] = Tree(node.value, tuple((T[ch] for ch in node.branches)))
    return T[cluster]

What's a good function header?

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

def prune(cluster, level=None, height=None, condition=None):