def optimize(node, max_pass=32, min_change=1):
    """
    Takes an AST and returns one that is equivilent
    but optimized.
    """
    changes = min_change
    passes = 0
    while passes < max_pass or changes >= min_change:
        changes, node = optimization_pass(node)
        passes += 1
    return node
dataset/ETHPy150Open armon/pypred/pypred/optimizer.py/optimize/operator `and` -> `or`