human
I wrote the below code

    binds = {}
    clauses = set()
    comparisons = []
    def visit_bindparam(bind):
        if (bind.key in query._params):
            value = query._params[bind.key]
        elif bind.callable:
            value = bind.callable()
        else:
            value = bind.value
        binds[bind] = value
    def visit_column(column):
        clauses.add(column)
    def visit_binary(binary):
        if ((binary.left in clauses) and (binary.operator == operators.in_op) and hasattr(binary.right, 'clauses')):
            comparisons.append((binary.left, binary.operator, tuple((binds[bind] for bind in binary.right.clauses))))
        elif ((binary.left in clauses) and (binary.right in binds)):
            comparisons.append((binary.left, binary.operator, binds[binary.right]))
        elif ((binary.left in binds) and (binary.right in clauses)):
            comparisons.append((binary.right, binary.operator, binds[binary.left]))
    if (query._criterion is not None):
        visitors.traverse_depthfirst(query._criterion, {}, {'bindparam': visit_bindparam, 'binary': visit_binary, 'column': visit_column})
    return comparisons

What's a good function header?

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

def _get_query_comparisons(query):