Skip to content

Commit 0e67a1e

Browse files
committed
fix(typing): Satisfy pyright in PolarsNamespace.concat
Resolves #2283 (comment)
1 parent fc74ba1 commit 0e67a1e

File tree

2 files changed

+8
-21
lines changed

2 files changed

+8
-21
lines changed

narwhals/_polars/namespace.py

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from narwhals._polars.dataframe import Method
3232
from narwhals._polars.dataframe import PolarsDataFrame
3333
from narwhals._polars.dataframe import PolarsLazyFrame
34+
from narwhals._polars.typing import FrameT
3435
from narwhals.schema import Schema
3536
from narwhals.typing import Into1DArray
3637
from narwhals.typing import TimeUnit
@@ -130,35 +131,17 @@ def len(self: Self) -> PolarsExpr:
130131
pl.len(), version=self._version, backend_version=self._backend_version
131132
)
132133

133-
@overload
134-
def concat(
135-
self: Self,
136-
items: Iterable[PolarsDataFrame],
137-
*,
138-
how: Literal["vertical", "horizontal", "diagonal"],
139-
) -> PolarsDataFrame: ...
140-
141-
@overload
142134
def concat(
143135
self: Self,
144-
items: Iterable[PolarsLazyFrame],
145-
*,
146-
how: Literal["vertical", "horizontal", "diagonal"],
147-
) -> PolarsLazyFrame: ...
148-
149-
def concat(
150-
self: Self,
151-
items: Iterable[PolarsDataFrame] | Iterable[PolarsLazyFrame],
136+
items: Iterable[FrameT],
152137
*,
153138
how: Literal["vertical", "horizontal", "diagonal"],
154139
) -> PolarsDataFrame | PolarsLazyFrame:
155-
from narwhals._polars.dataframe import PolarsDataFrame
156140
from narwhals._polars.dataframe import PolarsLazyFrame
157141

158-
dfs: Iterable[Any] = (item.native for item in items)
159-
result = pl.concat(dfs, how=how)
142+
result = pl.concat((item.native for item in items), how=how)
160143
if isinstance(result, pl.DataFrame):
161-
return PolarsDataFrame(
144+
return self._dataframe(
162145
result, backend_version=self._backend_version, version=self._version
163146
)
164147
return PolarsLazyFrame(

narwhals/_polars/typing.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@
55

66
if TYPE_CHECKING:
77
import sys
8+
from typing import TypeVar
89

910
if sys.version_info >= (3, 10):
1011
from typing import TypeAlias
1112
else:
1213
from typing_extensions import TypeAlias
1314

15+
from narwhals._polars.dataframe import PolarsDataFrame
16+
from narwhals._polars.dataframe import PolarsLazyFrame
1417
from narwhals._polars.expr import PolarsExpr
1518
from narwhals._polars.series import PolarsSeries
1619

1720
IntoPolarsExpr: TypeAlias = Union[PolarsExpr, PolarsSeries]
21+
FrameT = TypeVar("FrameT", PolarsDataFrame, PolarsLazyFrame)

0 commit comments

Comments
 (0)