From 7c31beec192cdd4dfe2e4cfea8c338681e59b73c Mon Sep 17 00:00:00 2001 From: Patrick Hoefler <61934744+phofl@users.noreply.github.com> Date: Sat, 4 Mar 2023 02:28:36 +0100 Subject: [PATCH] Backport PR #51674: BUG: ArrowDtype().type raising for fixed size pa binary --- pandas/core/arrays/arrow/dtype.py | 6 +++++- pandas/tests/extension/test_arrow.py | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pandas/core/arrays/arrow/dtype.py b/pandas/core/arrays/arrow/dtype.py index e8adab019b097..b6515c2875718 100644 --- a/pandas/core/arrays/arrow/dtype.py +++ b/pandas/core/arrays/arrow/dtype.py @@ -108,7 +108,11 @@ def type(self): return float elif pa.types.is_string(pa_type): return str - elif pa.types.is_binary(pa_type): + elif ( + pa.types.is_binary(pa_type) + or pa.types.is_fixed_size_binary(pa_type) + or pa.types.is_large_binary(pa_type) + ): return bytes elif pa.types.is_boolean(pa_type): return bool diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index 60d015c3a8f26..a15aa66d0f966 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -1399,6 +1399,11 @@ def test_mode_dropna_false_mode_na(data): tm.assert_series_equal(result, expected) +@pytest.mark.parametrize("arrow_dtype", [pa.binary(), pa.binary(16), pa.large_binary()]) +def test_arrow_dtype_type(arrow_dtype): + assert ArrowDtype(arrow_dtype).type == bytes + + def test_is_bool_dtype(): # GH 22667 data = ArrowExtensionArray(pa.array([True, False, True]))