Skip to content

Commit 203e5ee

Browse files
committed
chore: Move up some *Scalar impls
1 parent 4962db4 commit 203e5ee

File tree

2 files changed

+6
-35
lines changed

2 files changed

+6
-35
lines changed

narwhals/_plan/arrow/expr.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -452,28 +452,10 @@ def broadcast(self, length: int) -> Series:
452452
chunked = fn.chunked_array(pa_repeat(scalar, length))
453453
return Series.from_native(chunked, self.name, version=self.version)
454454

455-
def arg_min(self, node: ArgMin, frame: Frame, name: str) -> Scalar:
456-
return self._with_native(pa.scalar(0), name)
457-
458-
def arg_max(self, node: ArgMax, frame: Frame, name: str) -> Scalar:
459-
return self._with_native(pa.scalar(0), name)
460-
461-
def n_unique(self, node: NUnique, frame: Frame, name: str) -> Scalar:
462-
return self._with_native(pa.scalar(1), name)
463-
464-
def std(self, node: Std, frame: Frame, name: str) -> Scalar:
465-
return self._with_native(pa.scalar(None, pa.null()), name)
466-
467-
def var(self, node: Var, frame: Frame, name: str) -> Scalar:
468-
return self._with_native(pa.scalar(None, pa.null()), name)
469-
470455
def count(self, node: Count, frame: Frame, name: str) -> Scalar:
471456
native = node.expr.dispatch(self, frame, name).native
472457
return self._with_native(pa.scalar(1 if native.is_valid else 0), name)
473458

474-
def len(self, node: Len, frame: Frame, name: str) -> Scalar:
475-
return self._with_native(pa.scalar(1), name)
476-
477459
filter = not_implemented()
478460
over = not_implemented()
479461
over_ordered = not_implemented()

narwhals/_plan/compliant/scalar.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,25 @@ def from_python(
4848
version: Version,
4949
) -> Self: ...
5050
def arg_max(self, node: agg.ArgMax, frame: FrameT_contra, name: str) -> Self:
51-
"""Returns 0."""
52-
...
51+
return self.from_python(0, name, dtype=None, version=self.version)
5352

5453
def arg_min(self, node: agg.ArgMin, frame: FrameT_contra, name: str) -> Self:
55-
"""Returns 0."""
56-
...
54+
return self.from_python(0, name, dtype=None, version=self.version)
5755

5856
def count(self, node: agg.Count, frame: FrameT_contra, name: str) -> Self:
5957
"""Returns 0 if null, else 1."""
6058
...
6159

6260
def first(self, node: agg.First, frame: FrameT_contra, name: str) -> Self:
63-
"""Returns self."""
6461
return self._with_evaluated(self._evaluated, name)
6562

6663
def last(self, node: agg.Last, frame: FrameT_contra, name: str) -> Self:
67-
"""Returns self."""
6864
return self._with_evaluated(self._evaluated, name)
6965

7066
def len(self, node: agg.Len, frame: FrameT_contra, name: str) -> Self:
71-
"""Returns 1."""
72-
...
67+
return self.from_python(1, name, dtype=None, version=self.version)
7368

7469
def max(self, node: agg.Max, frame: FrameT_contra, name: str) -> Self:
75-
"""Returns self."""
7670
return self._with_evaluated(self._evaluated, name)
7771

7872
def mean(self, node: agg.Mean, frame: FrameT_contra, name: str) -> Self:
@@ -82,12 +76,10 @@ def median(self, node: agg.Median, frame: FrameT_contra, name: str) -> Self:
8276
return self._cast_float(node.expr, frame, name)
8377

8478
def min(self, node: agg.Min, frame: FrameT_contra, name: str) -> Self:
85-
"""Returns self."""
8679
return self._with_evaluated(self._evaluated, name)
8780

8881
def n_unique(self, node: agg.NUnique, frame: FrameT_contra, name: str) -> Self:
89-
"""Returns 1."""
90-
...
82+
return self.from_python(1, name, dtype=None, version=self.version)
9183

9284
def quantile(self, node: agg.Quantile, frame: FrameT_contra, name: str) -> Self:
9385
return self._cast_float(node.expr, frame, name)
@@ -99,16 +91,13 @@ def sort_by(self, node: ir.SortBy, frame: FrameT_contra, name: str) -> Self:
9991
return self._with_evaluated(self._evaluated, name)
10092

10193
def std(self, node: agg.Std, frame: FrameT_contra, name: str) -> Self:
102-
"""Returns null."""
103-
...
94+
return self.from_python(None, name, dtype=None, version=self.version)
10495

10596
def sum(self, node: agg.Sum, frame: FrameT_contra, name: str) -> Self:
106-
"""Returns self."""
10797
return self._with_evaluated(self._evaluated, name)
10898

10999
def var(self, node: agg.Var, frame: FrameT_contra, name: str) -> Self:
110-
"""Returns null."""
111-
...
100+
return self.from_python(None, name, dtype=None, version=self.version)
112101

113102
# NOTE: `Filter` behaves the same, (maybe) no need to override
114103

0 commit comments

Comments
 (0)