From 58959fbd1dc4379b4bbb4b22e5f3b9d069219104 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 31 Jul 2023 12:13:36 -0700 Subject: [PATCH 1/2] COMPAT: Pyarrow supports div with duration --- pandas/tests/extension/test_arrow.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index 197cdc3f436a1..60abeecd43c48 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -37,6 +37,7 @@ pa_version_under8p0, pa_version_under9p0, pa_version_under11p0, + pa_version_under13p0, ) from pandas.core.dtypes.dtypes import ( @@ -1005,7 +1006,14 @@ def _patch_combine(self, obj, other, op): def _is_temporal_supported(self, opname, pa_dtype): return not pa_version_under8p0 and ( - opname in ("__add__", "__radd__") + ( + opname in ("__add__", "__radd__") + or ( + opname + in ("__truediv__", "__rtruediv__", "__floordiv__", "__rfloordiv__") + and not pa_version_under13p0 + ) + ) and pa.types.is_duration(pa_dtype) or opname in ("__sub__", "__rsub__") and pa.types.is_temporal(pa_dtype) From ca194ad9ec60f7843223379dfbee118bbb436d73 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Mon, 31 Jul 2023 13:47:12 -0700 Subject: [PATCH 2/2] make raise typerror --- pandas/tests/extension/test_arrow.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index 60abeecd43c48..bdcd8f1ef0d50 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -1062,7 +1062,14 @@ def _get_arith_xfail_marker(self, opname, pa_dtype): f"for {pa_dtype}" ) ) - elif arrow_temporal_supported and pa.types.is_time(pa_dtype): + elif arrow_temporal_supported and ( + pa.types.is_time(pa_dtype) + or ( + opname + in ("__truediv__", "__rtruediv__", "__floordiv__", "__rfloordiv__") + and pa.types.is_duration(pa_dtype) + ) + ): mark = pytest.mark.xfail( raises=TypeError, reason=(