@@ -60,17 +60,15 @@ def _maybe_cache(arg, format, cache, convert_listlike):
60
60
return cache_array
61
61
62
62
63
- def _box_if_needed (dt_array , box , default , tz , name = None ):
63
+ def _box_as_indexlike (dt_array , tz = None , name = None ):
64
64
"""
65
- Properly boxes the ndarray of datetimes (if requested) to DatetimeIndex
65
+ Properly boxes the ndarray of datetimes to DatetimeIndex
66
66
if it is possible or to generic Index instead
67
67
68
68
Parameters
69
69
----------
70
70
dt_array: 1-d array
71
71
array of datetimes to be boxed
72
- box : boolean
73
- True boxes result as an Index-like, False returns an ndarray
74
72
tz : object
75
73
None or 'utc'
76
74
name : string, default None
@@ -79,18 +77,13 @@ def _box_if_needed(dt_array, box, default, tz, name=None):
79
77
Returns
80
78
-------
81
79
result : datetime of converted dates
82
- Returns:
83
-
84
- - Index-like if box=True
85
- - ndarray if box=False
80
+ - DatetimeIndex if convertible to sole datetime64 type
81
+ - general Index otherwise
86
82
"""
87
- if box :
88
- from pandas import DatetimeIndex , Index
89
- if is_datetime64_dtype (dt_array ):
90
- return DatetimeIndex (dt_array , tz = tz , name = name )
91
- # e.g. an Index of datetime objects
92
- return Index (dt_array , name = name )
93
- return default
83
+ from pandas import DatetimeIndex , Index
84
+ if is_datetime64_dtype (dt_array ):
85
+ return DatetimeIndex (dt_array , tz = tz , name = name )
86
+ return Index (dt_array , name = name )
94
87
95
88
96
89
def _convert_and_box_cache (arg , cache_array , box , name = None ):
@@ -117,7 +110,9 @@ def _convert_and_box_cache(arg, cache_array, box, name=None):
117
110
"""
118
111
from pandas import Series
119
112
result = Series (arg ).map (cache_array )
120
- return _box_if_needed (result , box , result .values , None , name )
113
+ if box :
114
+ return _box_as_indexlike (result , tz = None , name = name )
115
+ return result .values
121
116
122
117
123
118
def _return_parsed_timezone_results (result , timezones , box , tz , name ):
@@ -341,7 +336,9 @@ def _convert_listlike_datetimes(arg, box, format, name=None, tz=None,
341
336
for ts in result ]
342
337
return np .array (result , dtype = object )
343
338
344
- return _box_if_needed (result , box , result , tz , name )
339
+ if box :
340
+ return _box_as_indexlike (result , tz = tz , name = name )
341
+ return result
345
342
346
343
347
344
def _adjust_to_origin (arg , origin , unit ):
0 commit comments