From 086d45a5451c750d6054be15d88fb7728e14490c Mon Sep 17 00:00:00 2001 From: Marco Gorelli <33491632+MarcoGorelli@users.noreply.github.com> Date: Tue, 13 Aug 2024 19:29:02 +0100 Subject: [PATCH] correct min version --- narwhals/dataframe.py | 4 ++-- narwhals/series.py | 6 +++--- tests/series_only/arrow_c_stream_test.py | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/narwhals/dataframe.py b/narwhals/dataframe.py index f1c0c5bba..6f162dd15 100644 --- a/narwhals/dataframe.py +++ b/narwhals/dataframe.py @@ -265,10 +265,10 @@ def __arrow_c_stream__(self, requested_schema: object | None = None) -> object: try: import pyarrow as pa # ignore-banned-import except ModuleNotFoundError as exc: # pragma: no cover - msg = f"PyArrow>=14.0.0 is required for `__arrow_c_stream__` for object of type {type(native_frame)}" + msg = f"PyArrow>=14.0.0 is required for `DataFrame.__arrow_c_stream__` for object of type {type(native_frame)}" raise ModuleNotFoundError(msg) from exc if parse_version(pa.__version__) < (14, 0): # pragma: no cover - msg = f"PyArrow>=14.0.0 is required for `__arrow_c_stream__` for object of type {type(native_frame)}" + msg = f"PyArrow>=14.0.0 is required for `DataFrame.__arrow_c_stream__` for object of type {type(native_frame)}" raise ModuleNotFoundError(msg) from None pa_table = self.to_arrow() return pa_table.__arrow_c_stream__(requested_schema=requested_schema) diff --git a/narwhals/series.py b/narwhals/series.py index bbe2bfb3d..42b33eab5 100644 --- a/narwhals/series.py +++ b/narwhals/series.py @@ -76,10 +76,10 @@ def __arrow_c_stream__(self, requested_schema: object | None = None) -> object: try: import pyarrow as pa # ignore-banned-import except ModuleNotFoundError as exc: # pragma: no cover - msg = f"PyArrow>=14.0.0 is required for `__arrow_c_stream__` for object of type {type(native_series)}" + msg = f"PyArrow>=16.0.0 is required for `Series.__arrow_c_stream__` for object of type {type(native_series)}" raise ModuleNotFoundError(msg) from exc - if parse_version(pa.__version__) < (14, 0): # pragma: no cover - msg = f"PyArrow>=14.0.0 is required for `__arrow_c_stream__` for object of type {type(native_series)}" + if parse_version(pa.__version__) < (16, 0): # pragma: no cover + msg = f"PyArrow>=16.0.0 is required for `Series.__arrow_c_stream__` for object of type {type(native_series)}" raise ModuleNotFoundError(msg) ca = pa.chunked_array([self.to_arrow()]) return ca.__arrow_c_stream__(requested_schema=requested_schema) diff --git a/tests/series_only/arrow_c_stream_test.py b/tests/series_only/arrow_c_stream_test.py index 6b2ecf8a7..9964d7408 100644 --- a/tests/series_only/arrow_c_stream_test.py +++ b/tests/series_only/arrow_c_stream_test.py @@ -35,6 +35,7 @@ def test_arrow_c_stream_test_fallback(monkeypatch: pytest.MonkeyPatch) -> None: # Check that fallback to PyArrow works monkeypatch.delattr("polars.Series.__arrow_c_stream__") s = nw.from_native(pl.Series([1, 2, 3]).to_frame("a"), eager_only=True)["a"] + s.__arrow_c_stream__() result = pa.chunked_array(s) expected = pa.chunked_array([[1, 2, 3]]) assert pc.all(pc.equal(result, expected)).as_py()