diff --git a/narwhals/dataframe.py b/narwhals/dataframe.py index 9a94c999ac..6b673a8061 100644 --- a/narwhals/dataframe.py +++ b/narwhals/dataframe.py @@ -861,16 +861,19 @@ def estimated_size(self: Self, unit: SizeUnit = "b") -> int | float: @overload def __getitem__( # type: ignore[overload-overlap] - self: Self, key: str | tuple[slice | Sequence[int] | np.ndarray, int | str] + self: Self, + item: str | tuple[slice | Sequence[int] | np.ndarray, int | str], ) -> Series[Any]: ... @overload def __getitem__( self: Self, - key: ( - slice + item: ( + int + | slice | Sequence[int] | Sequence[str] + | np.ndarray | tuple[ slice | Sequence[int] | np.ndarray, slice | Sequence[int] | Sequence[str] ] @@ -880,9 +883,11 @@ def __getitem__( self: Self, item: ( str + | int | slice | Sequence[int] | Sequence[str] + | np.ndarray | tuple[slice | Sequence[int] | np.ndarray, int | str] | tuple[ slice | Sequence[int] | np.ndarray, slice | Sequence[int] | Sequence[str] diff --git a/narwhals/stable/v1/__init__.py b/narwhals/stable/v1/__init__.py index 7333f535b7..5aefefe2c8 100644 --- a/narwhals/stable/v1/__init__.py +++ b/narwhals/stable/v1/__init__.py @@ -133,13 +133,16 @@ def _lazyframe(self: Self) -> type[LazyFrame[Any]]: @overload def __getitem__( # type: ignore[overload-overlap] - self: Self, key: str | tuple[slice | Sequence[int] | np.ndarray, int | str] + self: Self, + item: str | tuple[slice | Sequence[int] | np.ndarray, int | str], ) -> Series: ... @overload def __getitem__( self: Self, - key: ( - slice + item: ( + int + | slice + | np.ndarray | Sequence[int] | Sequence[str] | tuple[ diff --git a/tests/frame/get_column_test.py b/tests/frame/get_column_test.py index ec5ab24aa9..ab727c8eba 100644 --- a/tests/frame/get_column_test.py +++ b/tests/frame/get_column_test.py @@ -29,5 +29,5 @@ def test_non_string_name() -> None: def test_get_single_row() -> None: df = pd.DataFrame({"a": [1, 2], "b": [3, 4]}) - result = nw.from_native(df, eager_only=True)[0] # type: ignore[call-overload] + result = nw.from_native(df, eager_only=True)[0] assert_equal_data(result, {"a": [1], "b": [3]}) diff --git a/tests/frame/getitem_test.py b/tests/frame/getitem_test.py index 379f99b468..afab298145 100644 --- a/tests/frame/getitem_test.py +++ b/tests/frame/getitem_test.py @@ -55,7 +55,7 @@ def test_slice_lazy_fails() -> None: def test_slice_int(constructor_eager: ConstructorEager) -> None: - result = nw.from_native(constructor_eager(data), eager_only=True)[1] # type: ignore[call-overload] + result = nw.from_native(constructor_eager(data), eager_only=True)[1] assert_equal_data(result, {"a": [2], "b": [12]}) @@ -63,7 +63,7 @@ def test_slice_fails(constructor_eager: ConstructorEager) -> None: class Foo: ... with pytest.raises(TypeError, match="Expected str or slice, got:"): - nw.from_native(constructor_eager(data), eager_only=True)[Foo()] # type: ignore[call-overload] + nw.from_native(constructor_eager(data), eager_only=True)[Foo()] # type: ignore[call-overload, unused-ignore] def test_gather(constructor_eager: ConstructorEager) -> None: