Skip to content

Commit

Permalink
docs: update selectors docstrings (#1905)
Browse files Browse the repository at this point in the history
* docs: update selector docstrings

* mypy
  • Loading branch information
FBruzzesi authored Jan 31, 2025
1 parent 5f7fdab commit 562b213
Show file tree
Hide file tree
Showing 5 changed files with 196 additions and 100 deletions.
13 changes: 7 additions & 6 deletions narwhals/_dask/selectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import re
from typing import TYPE_CHECKING
from typing import Any
from typing import Iterable
from typing import Sequence

from narwhals._dask.expr import DaskExpr
Expand All @@ -28,7 +29,7 @@ def __init__(
self._backend_version = backend_version
self._version = version

def by_dtype(self: Self, dtypes: list[DType | type[DType]]) -> DaskSelector:
def by_dtype(self: Self, dtypes: Iterable[DType | type[DType]]) -> DaskSelector:
def func(df: DaskLazyFrame) -> list[dx.Series]:
return [
df._native_frame[col] for col in df.columns if df.schema[col] in dtypes
Expand Down Expand Up @@ -73,7 +74,7 @@ def evalute_output_names(df: DaskLazyFrame) -> Sequence[str]:
def numeric(self: Self) -> DaskSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype(
[
{
dtypes.Int128,
dtypes.Int64,
dtypes.Int32,
Expand All @@ -86,20 +87,20 @@ def numeric(self: Self) -> DaskSelector:
dtypes.UInt8,
dtypes.Float64,
dtypes.Float32,
],
},
)

def categorical(self: Self) -> DaskSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Categorical])
return self.by_dtype({dtypes.Categorical})

def string(self: Self) -> DaskSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.String])
return self.by_dtype({dtypes.String})

def boolean(self: Self) -> DaskSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Boolean])
return self.by_dtype({dtypes.Boolean})

def all(self: Self) -> DaskSelector:
def func(df: DaskLazyFrame) -> list[dx.Series]:
Expand Down
13 changes: 7 additions & 6 deletions narwhals/_duckdb/selectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import re
from typing import TYPE_CHECKING
from typing import Any
from typing import Iterable
from typing import Sequence

from duckdb import ColumnExpression
Expand All @@ -27,7 +28,7 @@ def __init__(
self._backend_version = backend_version
self._version = version

def by_dtype(self: Self, dtypes: list[DType | type[DType]]) -> DuckDBSelector:
def by_dtype(self: Self, dtypes: Iterable[DType | type[DType]]) -> DuckDBSelector:
def func(df: DuckDBLazyFrame) -> list[duckdb.Expression]:
return [
ColumnExpression(col) for col in df.columns if df.schema[col] in dtypes
Expand Down Expand Up @@ -68,7 +69,7 @@ def evalute_output_names(df: DuckDBLazyFrame) -> Sequence[str]:
def numeric(self: Self) -> DuckDBSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype(
[
{
dtypes.Int128,
dtypes.Int64,
dtypes.Int32,
Expand All @@ -81,20 +82,20 @@ def numeric(self: Self) -> DuckDBSelector:
dtypes.UInt8,
dtypes.Float64,
dtypes.Float32,
],
},
)

def categorical(self: Self) -> DuckDBSelector: # pragma: no cover
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Categorical])
return self.by_dtype({dtypes.Categorical})

def string(self: Self) -> DuckDBSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.String])
return self.by_dtype({dtypes.String})

def boolean(self: Self) -> DuckDBSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Boolean])
return self.by_dtype({dtypes.Boolean})

def all(self: Self) -> DuckDBSelector:
def func(df: DuckDBLazyFrame) -> list[duckdb.Expression]:
Expand Down
13 changes: 7 additions & 6 deletions narwhals/_pandas_like/selectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import re
from typing import TYPE_CHECKING
from typing import Any
from typing import Iterable
from typing import Sequence

from narwhals._pandas_like.expr import PandasLikeExpr
Expand Down Expand Up @@ -30,7 +31,7 @@ def __init__(
self._backend_version = backend_version
self._version = version

def by_dtype(self: Self, dtypes: list[DType | type[DType]]) -> PandasSelector:
def by_dtype(self: Self, dtypes: Iterable[DType | type[DType]]) -> PandasSelector:
def func(df: PandasLikeDataFrame) -> list[PandasLikeSeries]:
return [df[col] for col in df.columns if df.schema[col] in dtypes]

Expand Down Expand Up @@ -71,7 +72,7 @@ def evalute_output_names(df: PandasLikeDataFrame) -> Sequence[str]:
def numeric(self: Self) -> PandasSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype(
[
{
dtypes.Int128,
dtypes.Int64,
dtypes.Int32,
Expand All @@ -84,20 +85,20 @@ def numeric(self: Self) -> PandasSelector:
dtypes.UInt8,
dtypes.Float64,
dtypes.Float32,
],
}
)

def categorical(self: Self) -> PandasSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Categorical])
return self.by_dtype({dtypes.Categorical})

def string(self: Self) -> PandasSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.String])
return self.by_dtype({dtypes.String})

def boolean(self: Self) -> PandasSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Boolean])
return self.by_dtype({dtypes.Boolean})

def all(self: Self) -> PandasSelector:
def func(df: PandasLikeDataFrame) -> list[PandasLikeSeries]:
Expand Down
13 changes: 7 additions & 6 deletions narwhals/_spark_like/selectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import re
from typing import TYPE_CHECKING
from typing import Any
from typing import Iterable
from typing import Sequence

from narwhals._spark_like.expr import SparkLikeExpr
Expand Down Expand Up @@ -31,7 +32,7 @@ def __init__(
self._version = version
self._implementation = implementation

def by_dtype(self: Self, dtypes: list[DType | type[DType]]) -> SparkLikeSelector:
def by_dtype(self: Self, dtypes: Iterable[DType | type[DType]]) -> SparkLikeSelector:
def func(df: SparkLikeLazyFrame) -> list[Column]:
return [df._F.col(col) for col in df.columns if df.schema[col] in dtypes]

Expand Down Expand Up @@ -70,7 +71,7 @@ def evalute_output_names(df: SparkLikeLazyFrame) -> Sequence[str]:
def numeric(self: Self) -> SparkLikeSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype(
[
{
dtypes.Int128,
dtypes.Int64,
dtypes.Int32,
Expand All @@ -83,20 +84,20 @@ def numeric(self: Self) -> SparkLikeSelector:
dtypes.UInt8,
dtypes.Float64,
dtypes.Float32,
],
},
)

def categorical(self: Self) -> SparkLikeSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Categorical])
return self.by_dtype({dtypes.Categorical})

def string(self: Self) -> SparkLikeSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.String])
return self.by_dtype({dtypes.String})

def boolean(self: Self) -> SparkLikeSelector:
dtypes = import_dtypes_module(self._version)
return self.by_dtype([dtypes.Boolean])
return self.by_dtype({dtypes.Boolean})

def all(self: Self) -> SparkLikeSelector:
def func(df: SparkLikeLazyFrame) -> list[Column]:
Expand Down
Loading

0 comments on commit 562b213

Please sign in to comment.