From 66fe4dba06db85aa74034834e5d2292e71b8e9c5 Mon Sep 17 00:00:00 2001 From: Rohan Jain Date: Mon, 14 Jul 2025 07:56:58 -0400 Subject: [PATCH 1/2] fix extension type check for ArrowDtype --- pandas/core/dtypes/dtypes.py | 2 +- pandas/tests/extension/test_arrow.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pandas/core/dtypes/dtypes.py b/pandas/core/dtypes/dtypes.py index 1eb1a630056a2..3b2a70c59aee6 100644 --- a/pandas/core/dtypes/dtypes.py +++ b/pandas/core/dtypes/dtypes.py @@ -2261,7 +2261,7 @@ def type(self): elif pa.types.is_null(pa_type): # TODO: None? pd.NA? pa.null? return type(pa_type) - elif isinstance(pa_type, pa.ExtensionType): + elif hasattr(pa_type, "extension_name"): return type(self)(pa_type.storage_type).type raise NotImplementedError(pa_type) diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index 4fccf02e08bd6..48547857783c2 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -3512,3 +3512,8 @@ def test_map_numeric_na_action(): result = ser.map(lambda x: 42, na_action="ignore") expected = pd.Series([42.0, 42.0, np.nan], dtype="float64") tm.assert_series_equal(result, expected) + + +@pytest.mark.skipif(not hasattr(pa, "uuid")) +def test_arrow_extension_type(): + assert ArrowDtype(pa.uuid()).type is bytes From 8bfecb26ca743a1621260e1d9c36f024def2bb69 Mon Sep 17 00:00:00 2001 From: Rohan Jain Date: Mon, 14 Jul 2025 07:58:31 -0400 Subject: [PATCH 2/2] f --- pandas/tests/extension/test_arrow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index 48547857783c2..1814b9b3b3484 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -3514,6 +3514,6 @@ def test_map_numeric_na_action(): tm.assert_series_equal(result, expected) -@pytest.mark.skipif(not hasattr(pa, "uuid")) +@pytest.mark.skipif(condition=not hasattr(pa, "uuid"), reason="No pa extension type") def test_arrow_extension_type(): assert ArrowDtype(pa.uuid()).type is bytes