|
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