diff --git a/pandas/compat/pyarrow.py b/pandas/compat/pyarrow.py index 96501b47e07f6..be3a038d472ab 100644 --- a/pandas/compat/pyarrow.py +++ b/pandas/compat/pyarrow.py @@ -17,6 +17,7 @@ pa_version_under13p0 = _palv < Version("13.0.0") pa_version_under14p0 = _palv < Version("14.0.0") pa_version_under14p1 = _palv < Version("14.0.1") + pa_version_under15p0 = _palv < Version("15.0.0") except ImportError: pa_version_under7p0 = True pa_version_under8p0 = True @@ -27,3 +28,4 @@ pa_version_under13p0 = True pa_version_under14p0 = True pa_version_under14p1 = True + pa_version_under15p0 = True diff --git a/pandas/tests/io/test_parquet.py b/pandas/tests/io/test_parquet.py index 1d68f12270b55..699f8952e17b9 100644 --- a/pandas/tests/io/test_parquet.py +++ b/pandas/tests/io/test_parquet.py @@ -19,6 +19,7 @@ pa_version_under8p0, pa_version_under11p0, pa_version_under13p0, + pa_version_under15p0, ) import pandas as pd @@ -755,7 +756,10 @@ def test_unsupported_float16(self, pa): # Not able to write float 16 column using pyarrow. data = np.arange(2, 10, dtype=np.float16) df = pd.DataFrame(data=data, columns=["fp16"]) - self.check_external_error_on_write(df, pa, pyarrow.ArrowException) + if pa_version_under15p0: + self.check_external_error_on_write(df, pa, pyarrow.ArrowException) + else: + check_round_trip(df, pa) @pytest.mark.xfail( is_platform_windows(), @@ -764,6 +768,7 @@ def test_unsupported_float16(self, pa): "dtypes are passed to_parquet function in windows" ), ) + @pytest.mark.skipif(not pa_version_under15p0, reason="float16 works on 15") @pytest.mark.parametrize("path_type", [str, pathlib.Path]) def test_unsupported_float16_cleanup(self, pa, path_type): # #44847, #44914