@@ -97,7 +97,6 @@ from pandas._libs.missing cimport (
9797 is_null_timedelta64,
9898)
9999
100- from pandas._libs.tslibs.timedeltas import Timedelta
101100from pandas._libs.tslibs.timestamps import Timestamp
102101
103102from 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