Skip to content

Commit 3d3e473

Browse files
committed
code clean up: pyarrow management simplification in maybe_convert_objects
1 parent 7bbc88b commit 3d3e473

File tree

1 file changed

+15
-60
lines changed

1 file changed

+15
-60
lines changed

pandas/_libs/lib.pyx

Lines changed: 15 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ from pandas._libs.missing cimport (
9797
is_null_timedelta64,
9898
)
9999

100-
from pandas._libs.tslibs.timedeltas import Timedelta
101100
from pandas._libs.tslibs.timestamps import Timestamp
102101

103102
from pandas._libs.tslibs.conversion cimport convert_to_tsobject
@@ -2771,19 +2770,7 @@ def maybe_convert_objects(ndarray[object] objects,
27712770
seen.object_ = True
27722771

27732772
elif seen.datetime_:
2774-
if storage == "pyarrow":
2775-
from pandas.core.dtypes.dtypes import ArrowDtype
2776-
2777-
if isinstance(val, datetime):
2778-
objects[mask] = None
2779-
else:
2780-
objects[mask] = np.datetime64("NaT")
2781-
datetime64_array = objects.astype(val.dtype)
2782-
pa_array = pa.array(datetime64_array)
2783-
dtype = ArrowDtype(pa_array.type)
2784-
return dtype.construct_array_type()._from_sequence(pa_array, dtype=dtype)
2785-
2786-
elif is_datetime_or_datetime64_array(objects):
2773+
if is_datetime_or_datetime64_array(objects):
27872774
from pandas import DatetimeIndex
27882775

27892776
try:
@@ -2795,43 +2782,18 @@ def maybe_convert_objects(ndarray[object] objects,
27952782
return dti._data._ndarray
27962783
seen.object_ = True
27972784

2798-
elif seen.date_:
2799-
if storage == "pyarrow":
2800-
2801-
from pandas.core.dtypes.dtypes import ArrowDtype
2802-
2803-
objects[mask] = None
2804-
pa_array = pa.array(objects)
2805-
dtype = ArrowDtype(pa_array.type)
2806-
return dtype.construct_array_type()._from_sequence(pa_array, dtype=dtype)
2807-
28082785
elif seen.timedelta_:
2809-
if storage == "pyarrow":
2810-
from pandas.core.dtypes.dtypes import ArrowDtype
2786+
if is_timedelta_or_timedelta64_array(objects):
2787+
from pandas import TimedeltaIndex
28112788

2812-
timedelta64_array = None
2813-
if isinstance(val, timedelta):
2814-
objects[mask] = None
2815-
timedelta64_array = objects.astype(Timedelta)
2789+
try:
2790+
tdi = TimedeltaIndex(objects)
2791+
except OutOfBoundsTimedelta:
2792+
pass
28162793
else:
2817-
objects[mask] = np.timedelta64("NaT")
2818-
timedelta64_array = objects.astype(val.dtype)
2819-
pa_array = pa.array(timedelta64_array)
2820-
2821-
dtype = ArrowDtype(pa_array.type)
2822-
return dtype.construct_array_type()._from_sequence(pa_array, dtype=dtype)
2823-
else:
2824-
if is_timedelta_or_timedelta64_array(objects):
2825-
from pandas import TimedeltaIndex
2826-
2827-
try:
2828-
tdi = TimedeltaIndex(objects)
2829-
except OutOfBoundsTimedelta:
2830-
pass
2831-
else:
2832-
# unbox to ndarray[timedelta64[ns]]
2833-
return tdi._data._ndarray
2834-
seen.object_ = True
2794+
# unbox to ndarray[timedelta64[ns]]
2795+
return tdi._data._ndarray
2796+
seen.object_ = True
28352797

28362798
elif seen.period_:
28372799
if is_period_array(objects):
@@ -2967,19 +2929,12 @@ def maybe_convert_objects(ndarray[object] objects,
29672929

29682930
# TODO: do these after the itemsize check?
29692931
if (result is ints or result is uints) and convert_to_nullable_dtype:
2970-
if storage == "pyarrow":
2971-
from pandas.core.dtypes.dtypes import ArrowDtype
2972-
2973-
dtype = ArrowDtype(pa.int64())
2974-
return dtype.construct_array_type()._from_sequence(objects, dtype=dtype)
2975-
else:
2976-
from pandas.core.arrays import IntegerArray
2977-
2978-
# Set these values to 1 to be deterministic, match
2979-
# IntegerDtype._internal_fill_value
2980-
result[mask] = 1
2981-
result = IntegerArray(result, mask)
2932+
from pandas.core.arrays import IntegerArray
29822933

2934+
# Set these values to 1 to be deterministic, match
2935+
# IntegerDtype._internal_fill_value
2936+
result[mask] = 1
2937+
result = IntegerArray(result, mask)
29832938
elif result is floats and convert_to_nullable_dtype:
29842939
from pandas.core.arrays import FloatingArray
29852940

0 commit comments

Comments
 (0)