def __init__(self, table, selections=None, predicates=None, sort_keys=None):
    import ibis.expr.analysis as L
    selections = util.promote_list((selections if (selections is not None) else []))
    projections = []
    for selection in selections:
        if isinstance(selection, str):
            projection = table[selection]
        else:
            projection = selection
        projections.append(projection)
    sort_keys = [to_sort_key(table, k) for k in util.promote_list((sort_keys if (sort_keys is not None) else []))]
    predicates = list(toolz.concat(map(L.flatten_predicate, (predicates if (predicates is not None) else []))))
    super().__init__(table=table, selections=projections, predicates=predicates, sort_keys=sort_keys)
def __init__(self, table, selections=None, predicates=None, sort_keys=None):
    import ibis.expr.analysis as L
    selections = util.promote_list((selections if (selections is not None) else []))
    projections = []
    for selection in selections:
        if isinstance(selection, str):
            projection = table[selection]
        else:
            projection = selection
        projections.append(projection)
    sort_keys = [to_sort_key(table, k) for k in util.promote_list((sort_keys if (sort_keys is not None) else []))]
    predicates = list(toolz.concat(map(L.flatten_predicate, (predicates if (predicates is not None) else []))))
    super().__init__(table=table, selections=projections, predicates=predicates, sort_keys=sort_keys)