diff --git a/narwhals/_pandas_like/series.py b/narwhals/_pandas_like/series.py index f79aab1ea..8aa4319ba 100644 --- a/narwhals/_pandas_like/series.py +++ b/narwhals/_pandas_like/series.py @@ -294,6 +294,10 @@ def is_between( def is_in(self: Self, other: Any) -> PandasLikeSeries: ser = self._native_series + if isinstance(other, self.__class__): + # We can't use `broadcast_and_align` because we don't want to align here. + # `other` is just a sequence that all rows from `self` are checked against. + other = other._native_series res = ser.isin(other) return self._from_native_series(res) diff --git a/tests/frame/interchange_native_namespace_test.py b/tests/frame/interchange_native_namespace_test.py index 865a675ad..67fba1c11 100644 --- a/tests/frame/interchange_native_namespace_test.py +++ b/tests/frame/interchange_native_namespace_test.py @@ -28,9 +28,13 @@ def test_interchange() -> None: @pytest.mark.filterwarnings("ignore:.*The `ArrowDtype` class is not available in pandas") def test_ibis( - tmpdir: pytest.TempdirFactory, + tmpdir: pytest.TempdirFactory, request: pytest.FixtureRequest ) -> None: # pragma: no cover ibis = pytest.importorskip("ibis") + try: + ibis.set_backend("duckdb") + except ImportError: + request.applymarker(pytest.mark.xfail) df_pl = pl.DataFrame(data) filepath = str(tmpdir / "file.parquet") # type: ignore[operator] diff --git a/tests/frame/interchange_schema_test.py b/tests/frame/interchange_schema_test.py index a9482811f..4ece51b3d 100644 --- a/tests/frame/interchange_schema_test.py +++ b/tests/frame/interchange_schema_test.py @@ -70,9 +70,13 @@ def test_interchange_schema() -> None: @pytest.mark.filterwarnings("ignore:.*locale specific date formats") def test_interchange_schema_ibis( - tmpdir: pytest.TempdirFactory, + tmpdir: pytest.TempdirFactory, request: pytest.FixtureRequest ) -> None: # pragma: no cover ibis = pytest.importorskip("ibis") + try: + ibis.set_backend("duckdb") + except ImportError: + request.applymarker(pytest.mark.xfail) df_pl = pl.DataFrame( { "a": [1, 1, 2], diff --git a/tests/frame/interchange_select_test.py b/tests/frame/interchange_select_test.py index cb28ca39c..4e1400fd7 100644 --- a/tests/frame/interchange_select_test.py +++ b/tests/frame/interchange_select_test.py @@ -47,9 +47,13 @@ def test_interchange() -> None: def test_interchange_ibis( - tmpdir: pytest.TempdirFactory, + tmpdir: pytest.TempdirFactory, request: pytest.FixtureRequest ) -> None: # pragma: no cover ibis = pytest.importorskip("ibis") + try: + ibis.set_backend("duckdb") + except ImportError: + request.applymarker(pytest.mark.xfail) df_pl = pl.DataFrame(data) filepath = str(tmpdir / "file.parquet") # type: ignore[operator] diff --git a/tests/frame/interchange_to_arrow_test.py b/tests/frame/interchange_to_arrow_test.py index 1f01b67c6..064d15834 100644 --- a/tests/frame/interchange_to_arrow_test.py +++ b/tests/frame/interchange_to_arrow_test.py @@ -18,9 +18,13 @@ def test_interchange_to_arrow() -> None: def test_interchange_ibis_to_arrow( - tmpdir: pytest.TempdirFactory, + tmpdir: pytest.TempdirFactory, request: pytest.FixtureRequest ) -> None: # pragma: no cover ibis = pytest.importorskip("ibis") + try: + ibis.set_backend("duckdb") + except ImportError: + request.applymarker(pytest.mark.xfail) df_pl = pl.DataFrame(data) filepath = str(tmpdir / "file.parquet") # type: ignore[operator] diff --git a/tests/frame/interchange_to_pandas_test.py b/tests/frame/interchange_to_pandas_test.py index 7761a6499..d9d0a8783 100644 --- a/tests/frame/interchange_to_pandas_test.py +++ b/tests/frame/interchange_to_pandas_test.py @@ -26,6 +26,10 @@ def test_interchange_ibis_to_pandas( request.applymarker(pytest.mark.xfail) ibis = pytest.importorskip("ibis") + try: + ibis.set_backend("duckdb") + except ImportError: + request.applymarker(pytest.mark.xfail) df_raw = pd.DataFrame(data) filepath = str(tmpdir / "file.parquet") # type: ignore[operator]