1717from narwhals ._arrow .utils import extract_dataframe_comparand
1818from narwhals ._arrow .utils import native_to_narwhals_dtype
1919from narwhals ._arrow .utils import select_rows
20+ from narwhals ._compliant import EagerDataFrame
2021from narwhals ._expression_parsing import ExprKind
21- from narwhals ._expression_parsing import evaluate_into_exprs
2222from narwhals .dependencies import is_numpy_array_1d
2323from narwhals .utils import Implementation
2424from narwhals .utils import Version
7171from narwhals .typing import CompliantLazyFrame
7272
7373
74- class ArrowDataFrame (CompliantDataFrame ["ArrowSeries" ], CompliantLazyFrame ):
74+ class ArrowDataFrame (EagerDataFrame ["ArrowSeries" ], CompliantLazyFrame ):
7575 # --- not in the spec ---
7676 def __init__ (
7777 self : Self ,
@@ -360,7 +360,7 @@ def aggregate(self: ArrowDataFrame, *exprs: ArrowExpr) -> ArrowDataFrame:
360360 return self .select (* exprs )
361361
362362 def select (self : ArrowDataFrame , * exprs : ArrowExpr ) -> ArrowDataFrame :
363- new_series = evaluate_into_exprs ( self , * exprs )
363+ new_series = self . _evaluate_into_exprs ( * exprs )
364364 if not new_series :
365365 # return empty dataframe, like Polars does
366366 return self ._from_native_frame (
@@ -373,7 +373,7 @@ def select(self: ArrowDataFrame, *exprs: ArrowExpr) -> ArrowDataFrame:
373373
374374 def with_columns (self : ArrowDataFrame , * exprs : ArrowExpr ) -> ArrowDataFrame :
375375 native_frame = self ._native_frame
376- new_columns = evaluate_into_exprs ( self , * exprs )
376+ new_columns = self . _evaluate_into_exprs ( * exprs )
377377
378378 length = len (self )
379379 columns = self .columns
@@ -560,7 +560,7 @@ def filter(
560560 mask_native : Mask | ArrowChunkedArray = predicate
561561 else :
562562 # `[0]` is safe as the predicate's expression only returns a single column
563- mask_native = evaluate_into_exprs ( self , predicate )[0 ]._native_series
563+ mask_native = self . _evaluate_into_exprs ( predicate )[0 ]._native_series
564564 return self ._from_native_frame (
565565 self ._native_frame .filter (mask_native ), # pyright: ignore[reportArgumentType]
566566 validate_column_names = False ,
@@ -777,7 +777,7 @@ def unique(
777777
778778 keep_idx = self .simple_select (* subset ).is_unique ()
779779 plx = self .__narwhals_namespace__ ()
780- return self .filter (plx ._create_expr_from_series (keep_idx ))
780+ return self .filter (plx ._expr . _from_series (keep_idx ))
781781
782782 def gather_every (self : Self , n : int , offset : int ) -> Self :
783783 return self ._from_native_frame (
0 commit comments