def handle_filtering( self, ibis_table: TableExpr, where_expr: Tree, internal_transformer: InternalTransformer, ): """ Returns frame with appropriately selected and named columns :param ibis_table: Ibis expression table to manipulate :param where_expr: Syntax tree containing where clause :param internal_transformer: Transformer to transform the where clauses :return: Filtered TableExpr """ if where_expr is not None: where_expression: WhereExpression = internal_transformer.transform( where_expr) return ibis_table.filter(where_expression.value.get_value()) return ibis_table
def __call__(self, expr: ir.TableExpr) -> ir.TableExpr: scope = {X: expr} return expr.filter( [predicate.resolve(expr, scope) for predicate in self.predicates])