From 8003c68f889099b9ccf0f2e27b1d08382f5514e5 Mon Sep 17 00:00:00 2001 From: Brock Date: Tue, 11 Apr 2023 13:30:35 -0700 Subject: [PATCH] PERF: remove is_1d_only_ea_obj --- pandas/core/array_algos/take.py | 4 ++-- pandas/core/dtypes/common.py | 18 ------------------ pandas/core/internals/blocks.py | 3 +-- 3 files changed, 3 insertions(+), 22 deletions(-) diff --git a/pandas/core/array_algos/take.py b/pandas/core/array_algos/take.py index c97891b0a460d..1e2f52a6a9413 100644 --- a/pandas/core/array_algos/take.py +++ b/pandas/core/array_algos/take.py @@ -17,7 +17,7 @@ from pandas.core.dtypes.cast import maybe_promote from pandas.core.dtypes.common import ( ensure_platform_int, - is_1d_only_ea_obj, + is_1d_only_ea_dtype, ) from pandas.core.dtypes.missing import na_value_for_dtype @@ -105,7 +105,7 @@ def take_nd( if not isinstance(arr, np.ndarray): # i.e. ExtensionArray, # includes for EA to catch DatetimeArray, TimedeltaArray - if not is_1d_only_ea_obj(arr): + if not is_1d_only_ea_dtype(arr.dtype): # i.e. DatetimeArray, TimedeltaArray arr = cast("NDArrayBackedExtensionArray", arr) return arr.take( diff --git a/pandas/core/dtypes/common.py b/pandas/core/dtypes/common.py index 6349a064f9edd..ab8dbb136ec22 100644 --- a/pandas/core/dtypes/common.py +++ b/pandas/core/dtypes/common.py @@ -1243,23 +1243,6 @@ def is_bool_dtype(arr_or_dtype) -> bool: return issubclass(dtype.type, np.bool_) -def is_1d_only_ea_obj(obj: Any) -> bool: - """ - ExtensionArray that does not support 2D, or more specifically that does - not use HybridBlock. - """ - from pandas.core.arrays import ( - DatetimeArray, - ExtensionArray, - PeriodArray, - TimedeltaArray, - ) - - return isinstance(obj, ExtensionArray) and not isinstance( - obj, (DatetimeArray, TimedeltaArray, PeriodArray) - ) - - def is_1d_only_ea_dtype(dtype: DtypeObj | None) -> bool: """ Analogue to is_extension_array_dtype but excluding DatetimeTZDtype. @@ -1676,7 +1659,6 @@ def is_all_strings(value: ArrayLike) -> bool: "infer_dtype_from_object", "INT64_DTYPE", "is_1d_only_ea_dtype", - "is_1d_only_ea_obj", "is_all_strings", "is_any_real_numeric_dtype", "is_array_like", diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index a52d0ccc7c631..ff022cb047f3d 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -56,7 +56,6 @@ from pandas.core.dtypes.common import ( ensure_platform_int, is_1d_only_ea_dtype, - is_1d_only_ea_obj, is_dtype_equal, is_list_like, is_string_dtype, @@ -356,7 +355,7 @@ def _split_op_result(self, result: ArrayLike) -> list[Block]: # if we get a 2D ExtensionArray, we need to split it into 1D pieces nbs = [] for i, loc in enumerate(self._mgr_locs): - if not is_1d_only_ea_obj(result): + if not is_1d_only_ea_dtype(result.dtype): vals = result[i : i + 1] else: vals = result[i]