|
38 | 38 | is_bool_dtype, |
39 | 39 | is_list_like, |
40 | 40 | is_numeric_v_string_like, |
41 | | - is_string_dtype, |
42 | 41 | is_object_dtype, |
43 | 42 | is_scalar, |
| 43 | + is_string_dtype, |
44 | 44 | ) |
45 | 45 | from pandas.core.dtypes.generic import ( |
46 | 46 | ABCExtensionArray, |
|
54 | 54 |
|
55 | 55 | from pandas.core import roperator |
56 | 56 | from pandas.core.computation import expressions |
57 | | -from pandas.core.construction import ensure_wrapped_if_datetimelike, array |
| 57 | +from pandas.core.construction import ( |
| 58 | + array as pd_array, |
| 59 | + ensure_wrapped_if_datetimelike, |
| 60 | +) |
58 | 61 | from pandas.core.ops import missing |
59 | 62 | from pandas.core.ops.dispatch import should_extension_dispatch |
60 | 63 | from pandas.core.ops.invalid import invalid_comparison |
@@ -322,16 +325,15 @@ def comparison_op(left: ArrayLike, right: Any, op) -> ArrayLike: |
322 | 325 | "Lengths must match to compare", lvalues.shape, rvalues.shape |
323 | 326 | ) |
324 | 327 |
|
325 | | - if ( |
326 | | - (is_string_dtype(lvalues) and is_object_dtype(rvalues)) or |
327 | | - (is_object_dtype(lvalues) and is_string_dtype(rvalues)) |
| 328 | + if (is_string_dtype(lvalues) and is_object_dtype(rvalues)) or ( |
| 329 | + is_object_dtype(lvalues) and is_string_dtype(rvalues) |
328 | 330 | ): |
329 | 331 | if lvalues.dtype.name == "string" and rvalues.dtype == object: |
330 | 332 | lvalues = lvalues.astype("string") |
331 | | - rvalues = array(rvalues, dtype="string") |
| 333 | + rvalues = pd_array(rvalues, dtype="string") |
332 | 334 | elif rvalues.dtype.name == "string" and lvalues.dtype == object: |
333 | 335 | rvalues = rvalues.astype("string") |
334 | | - lvalues = array(lvalues, dtype="string") |
| 336 | + lvalues = pd_array(lvalues, dtype="string") |
335 | 337 |
|
336 | 338 | if should_extension_dispatch(lvalues, rvalues) or ( |
337 | 339 | (isinstance(rvalues, (Timedelta, BaseOffset, Timestamp)) or right is NaT) |
|
0 commit comments