diff --git a/pandas/compat/pyarrow.py b/pandas/compat/pyarrow.py index 2f2fb6a3662f4..049ce50920e28 100644 --- a/pandas/compat/pyarrow.py +++ b/pandas/compat/pyarrow.py @@ -13,6 +13,7 @@ pa_version_under9p0 = _palv < Version("9.0.0") pa_version_under10p0 = _palv < Version("10.0.0") pa_version_under11p0 = _palv < Version("11.0.0") + pa_version_under12p0 = _palv < Version("12.0.0") pa_version_under13p0 = _palv < Version("13.0.0") except ImportError: pa_version_under7p0 = True @@ -20,4 +21,5 @@ pa_version_under9p0 = True pa_version_under10p0 = True pa_version_under11p0 = True + pa_version_under12p0 = True pa_version_under13p0 = True diff --git a/pandas/tests/copy_view/test_astype.py b/pandas/tests/copy_view/test_astype.py index e89bdd5af348d..4b751ad452ec4 100644 --- a/pandas/tests/copy_view/test_astype.py +++ b/pandas/tests/copy_view/test_astype.py @@ -2,6 +2,7 @@ import pytest from pandas.compat import pa_version_under7p0 +from pandas.compat.pyarrow import pa_version_under12p0 import pandas.util._test_decorators as td import pandas as pd @@ -200,11 +201,14 @@ def test_astype_arrow_timestamp(using_copy_on_write): result = df.astype("timestamp[ns][pyarrow]") if using_copy_on_write: assert not result._mgr._has_no_reference(0) - # TODO(CoW): arrow is not setting copy=False in the Series constructor - # under the hood - assert not np.shares_memory( - get_array(df, "a"), get_array(result, "a")._pa_array - ) + if pa_version_under12p0: + assert not np.shares_memory( + get_array(df, "a"), get_array(result, "a")._pa_array + ) + else: + assert np.shares_memory( + get_array(df, "a"), get_array(result, "a")._pa_array + ) def test_convert_dtypes_infer_objects(using_copy_on_write):