Skip to content

Commit 685d31f

Browse files
mroeschkejreback
authored andcommitted
CLN: parse_date compat function (#26038)
1 parent a07ed59 commit 685d31f

File tree

6 files changed

+15
-21
lines changed

6 files changed

+15
-21
lines changed

pandas/_libs/tslibs/parsing.pyx

+1-1
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ def _guess_datetime_format(dt_str, dayfirst=False, dt_str_parse=du_parse,
624624
If True parses dates with the day first, eg 20/01/2005
625625
Warning: dayfirst=True is not strict, but will prefer to parse
626626
with day first (this is a known bug).
627-
dt_str_parse : function, defaults to `compat.parse_date` (dateutil)
627+
dt_str_parse : function, defaults to `dateutil.parser.parse`
628628
This function should take in a datetime string and return
629629
a `datetime.datetime` guess that the datetime string represents
630630
dt_str_split : function, defaults to `_DATEUTIL_LEXER_SPLIT` (dateutil)

pandas/compat/__init__.py

-10
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,6 @@ def raise_with_traceback(exc, traceback=Ellipsis):
138138
raise_with_traceback.__doc__ = """Raise exception with existing traceback.
139139
If traceback is not passed, uses sys.exc_info() to get traceback."""
140140

141-
142-
# dateutil minimum version
143-
import dateutil
144-
145-
if LooseVersion(dateutil.__version__) < LooseVersion('2.5'):
146-
raise ImportError('dateutil 2.5.0 is the minimum required version')
147-
from dateutil import parser as _date_parser
148-
parse_date = _date_parser.parse
149-
150-
151141
# In Python 3.7, the private re._pattern_type is removed.
152142
# Python 3.5+ have typing.re.Pattern
153143
if PY36:

pandas/tests/indexes/datetimes/test_tools.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -1303,8 +1303,6 @@ def test_to_datetime_overflow(self):
13031303
def test_string_na_nat_conversion(self, cache):
13041304
# GH #999, #858
13051305

1306-
from pandas.compat import parse_date
1307-
13081306
strings = np.array(['1/1/2000', '1/2/2000', np.nan,
13091307
'1/4/2000, 12:34:56'], dtype=object)
13101308

@@ -1313,7 +1311,7 @@ def test_string_na_nat_conversion(self, cache):
13131311
if isna(val):
13141312
expected[i] = iNaT
13151313
else:
1316-
expected[i] = parse_date(val)
1314+
expected[i] = parse(val)
13171315

13181316
result = tslib.array_to_datetime(strings)[0]
13191317
tm.assert_almost_equal(result, expected)

pandas/tests/io/parser/test_converters.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
"""
77
from io import StringIO
88

9+
from dateutil.parser import parse
910
import numpy as np
1011
import pytest
1112

12-
from pandas.compat import lmap, parse_date
13+
from pandas.compat import lmap
1314

1415
import pandas as pd
1516
from pandas import DataFrame, Index
@@ -28,7 +29,7 @@ def test_converters_type_must_be_dict(all_parsers):
2829

2930
@pytest.mark.parametrize("column", [3, "D"])
3031
@pytest.mark.parametrize("converter", [
31-
parse_date,
32+
parse,
3233
lambda x: int(x.split("/")[2]) # Produce integer.
3334
])
3435
def test_converters(all_parsers, column, converter):

pandas/tests/io/parser/test_parse_dates.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88
from datetime import date, datetime
99
from io import StringIO
1010

11+
from dateutil.parser import parse
1112
import numpy as np
1213
import pytest
1314
import pytz
1415

1516
from pandas._libs.tslib import Timestamp
1617
from pandas._libs.tslibs import parsing
17-
from pandas.compat import lrange, parse_date
18+
from pandas.compat import lrange
1819
from pandas.compat.numpy import np_array_datetime64_compat
1920

2021
import pandas as pd
@@ -438,7 +439,7 @@ def test_parse_dates_custom_euro_format(all_parsers, kwargs):
438439
"""
439440
if "dayfirst" in kwargs:
440441
df = parser.read_csv(StringIO(data), names=["time", "Q", "NTU"],
441-
date_parser=lambda d: parse_date(d, **kwargs),
442+
date_parser=lambda d: parse(d, **kwargs),
442443
header=0, index_col=0, parse_dates=True,
443444
na_values=["NA"])
444445
exp_index = Index([datetime(2010, 1, 31), datetime(2010, 2, 1),
@@ -450,7 +451,7 @@ def test_parse_dates_custom_euro_format(all_parsers, kwargs):
450451
msg = "got an unexpected keyword argument 'day_first'"
451452
with pytest.raises(TypeError, match=msg):
452453
parser.read_csv(StringIO(data), names=["time", "Q", "NTU"],
453-
date_parser=lambda d: parse_date(d, **kwargs),
454+
date_parser=lambda d: parse(d, **kwargs),
454455
skiprows=[0], index_col=0, parse_dates=True,
455456
na_values=["NA"])
456457

scripts/find_commits_touching_func.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616
import os
1717
import argparse
1818
from collections import namedtuple
19-
from pandas.compat import lrange, parse_date
19+
20+
from dateutil.parser import parse
21+
22+
from pandas.compat import lrange
23+
2024
try:
2125
import sh
2226
except ImportError:
@@ -107,7 +111,7 @@ def get_commit_info(c, fmt, sep='\t'):
107111

108112
def get_commit_vitals(c, hlen=HASH_LEN):
109113
h, s, d = get_commit_info(c, '%H\t%s\t%ci', "\t")
110-
return h[:hlen], s, parse_date(d)
114+
return h[:hlen], s, parse(d)
111115

112116

113117
def file_filter(state, dirname, fnames):

0 commit comments

Comments
 (0)