Skip to content

Commit 7c52d63

Browse files
author
Chris Bertinato
committed
WIP: deprecate internal use of box
1 parent 6df828e commit 7c52d63

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

pandas/core/dtypes/cast.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -794,10 +794,10 @@ def soft_convert_objects(values, datetime=True, numeric=True, timedelta=True,
794794
# Immediate return if coerce
795795
if datetime:
796796
from pandas import to_datetime
797-
return to_datetime(values, errors='coerce', box=False)
797+
return to_datetime(values, errors='coerce').to_numpy()
798798
elif timedelta:
799799
from pandas import to_timedelta
800-
return to_timedelta(values, errors='coerce', box=False)
800+
return to_timedelta(values, errors='coerce').to_numpy()
801801
elif numeric:
802802
from pandas import to_numeric
803803
return to_numeric(values, errors='coerce')

pandas/core/indexes/datetimelike.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,12 @@ def asobject(self):
300300
return self.astype(object)
301301

302302
def _convert_tolerance(self, tolerance, target):
303-
tolerance = np.asarray(to_timedelta(tolerance, box=False))
303+
tolerance = to_timedelta(tolerance)
304+
if isinstance(tolerance, ABCIndexClass):
305+
tolerance = tolerance.to_numpy()
306+
else:
307+
tolerance = np.asarray(tolerance.to_timedelta64())
308+
304309
if target.size != tolerance.size and tolerance.size > 1:
305310
raise ValueError('list-like tolerance size must match '
306311
'target index size')

pandas/io/parsers.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@
1414

1515
import numpy as np
1616

17+
from pandas import DatetimeIndex
18+
1719
import pandas._libs.lib as lib
1820
import pandas._libs.ops as libops
1921
import pandas._libs.parsers as parsers
20-
from pandas._libs.tslibs import parsing
22+
from pandas._libs.tslibs import parsing, Timestamp
2123
import pandas.compat as compat
2224
from pandas.compat import (
2325
PY3, StringIO, lrange, lzip, map, range, string_types, u, zip)
@@ -3139,17 +3141,28 @@ def _get_lines(self, rows=None):
31393141
def _make_date_converter(date_parser=None, dayfirst=False,
31403142
infer_datetime_format=False):
31413143
def converter(*date_cols):
3144+
from pandas.core.dtypes.common import is_datetime64_dtype
31423145
if date_parser is None:
31433146
strs = _concat_date_cols(date_cols)
31443147

31453148
try:
3146-
return tools.to_datetime(
3149+
dti = tools.to_datetime(
31473150
ensure_object(strs),
31483151
utc=None,
31493152
dayfirst=dayfirst,
31503153
errors='ignore',
31513154
infer_datetime_format=infer_datetime_format
31523155
)
3156+
3157+
if isinstance(dti, DatetimeIndex):
3158+
dti = dti.to_pydatetime()
3159+
elif is_datetime64_dtype(dti):
3160+
dti = np.array([Timestamp(ts).to_pydatetime()
3161+
for ts in dti])
3162+
else:
3163+
dti = dti.to_numpy()
3164+
3165+
return dti
31533166
except ValueError:
31543167
return tools.to_datetime(
31553168
parsing.try_parse_dates(strs, dayfirst=dayfirst))

0 commit comments

Comments
 (0)