<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_nodes(expr, node_types):
 """Depth-first search of the expression tree yielding nodes of a given type or set of types. Parameters expr: ibis.expr.types.Expr node_types: type or tuple of types Yields ------ op: type A node of given node_types """


    def extender(op):
        return (arg for arg in op.args if isinstance(arg, ir.Expr))

    return _search_for_nodes([expr], extender, node_types)