Skip to content

Commit 35457b1

Browse files
committed
PEP fixes, remove _add_time_format
1 parent 9c71dbf commit 35457b1

File tree

4 files changed

+65
-59
lines changed

4 files changed

+65
-59
lines changed

doc/source/whatsnew/v0.18.0.txt

+11-10
Original file line numberDiff line numberDiff line change
@@ -266,19 +266,20 @@ other anchored offsets like ``MonthBegin`` and ``YearBegin``.
266266
Other API Changes
267267
^^^^^^^^^^^^^^^^^
268268

269-
- ``DataFrame.between_time`` and ``Series.between_time`` now only parse a fixed set of time strings. Parsing
270-
of date strings is no longer supported and raises a ValueError. (:issue:`11818`)
269+
- ``DataFrame.between_time`` and ``Series.between_time`` now only parse a fixed set of time strings. Parsing
270+
of date strings is no longer supported and raises a ``ValueError``. (:issue:`11818`)
271271

272-
.. code-block:: python
272+
.. ipython:: python
273+
274+
s = pd.Series(range(10), pd.date_range('2015-01-01', freq='H', periods=10))
275+
s.between_time("7:00am", "9:00am")
273276

274-
In [3]: s = pd.Series(range(10), pd.date_range('2015-01-01', freq='H', periods=10))
277+
This will now raise.
278+
279+
.. code-block:: python
275280

276-
In [4]: s.between_time("7:00am", "9:00am")
277-
Out[4]:
278-
2015-01-01 07:00:00 7
279-
2015-01-01 08:00:00 8
280-
2015-01-01 09:00:00 9
281-
Freq: H, dtype: int64
281+
In [2]: s.between_time('20150101 07:00:00','20150101 09:00:00')
282+
ValueError: Cannot convert arg ['20150101 07:00:00'] to a time.
282283

283284

284285

pandas/tseries/tests/test_timeseries.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def test_index_unique(self):
8787
self.assertEqual(idx.nunique(dropna=False), 21)
8888

8989
arr = [Timestamp('2013-06-09 02:42:28') + timedelta(seconds=t) for
90-
t in range(20) ] + [NaT]
90+
t in range(20)] + [NaT]
9191
idx = DatetimeIndex(arr * 3)
9292
self.assertTrue(idx.unique().equals(DatetimeIndex(arr)))
9393
self.assertEqual(idx.nunique(), 20)
@@ -254,30 +254,30 @@ def test_indexing(self):
254254
# GH3546 (not including times on the last day)
255255
idx = date_range(start='2013-05-31 00:00', end='2013-05-31 23:00',
256256
freq='H')
257-
ts = Series(lrange(len(idx)), index=idx)
257+
ts = Series(lrange(len(idx)), index=idx)
258258
expected = ts['2013-05']
259259
assert_series_equal(expected, ts)
260260

261261
idx = date_range(start='2013-05-31 00:00', end='2013-05-31 23:59',
262262
freq='S')
263-
ts = Series(lrange(len(idx)), index=idx)
263+
ts = Series(lrange(len(idx)), index=idx)
264264
expected = ts['2013-05']
265-
assert_series_equal(expected,ts)
265+
assert_series_equal(expected, ts)
266266

267267
idx = [Timestamp('2013-05-31 00:00'),
268-
Timestamp(datetime(2013,5,31,23,59,59,999999))]
268+
Timestamp(datetime(2013, 5, 31, 23, 59, 59, 999999))]
269269
ts = Series(lrange(len(idx)), index=idx)
270270
expected = ts['2013']
271-
assert_series_equal(expected,ts)
271+
assert_series_equal(expected, ts)
272272

273273
# GH 3925, indexing with a seconds resolution string / datetime object
274-
df = DataFrame(randn(5,5),
274+
df = DataFrame(randn(5, 5),
275275
columns=['open', 'high', 'low', 'close', 'volume'],
276276
index=date_range('2012-01-02 18:01:00',
277277
periods=5, tz='US/Central', freq='s'))
278278
expected = df.loc[[df.index[2]]]
279279
result = df['2012-01-02 18:01:02']
280-
assert_frame_equal(result,expected)
280+
assert_frame_equal(result, expected)
281281

282282
# this is a single date, so will raise
283283
self.assertRaises(KeyError, df.__getitem__, df.index[2],)

pandas/tseries/tests/test_tslib.py

+28-24
Original file line numberDiff line numberDiff line change
@@ -127,33 +127,37 @@ def test_constructor_with_stringoffset(self):
127127
self.assertEqual(result.value, expected_utc)
128128
self.assertEqual(tslib.pydt_to_i8(result), expected_utc)
129129

130-
# This should be 2013-11-01 05:00 in UTC -> converted to Chicago tz
130+
# This should be 2013-11-01 05:00 in UTC
131+
# converted to Chicago tz
131132
result = Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago')
132133
self.assertEqual(result.value, Timestamp('2013-11-01 05:00').value)
133-
expected_repr = "Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago')"
134-
self.assertEqual(repr(result), expected_repr)
134+
expected = "Timestamp('2013-11-01 00:00:00-0500', tz='America/Chicago')" # noqa
135+
self.assertEqual(repr(result), expected)
135136
self.assertEqual(result, eval(repr(result)))
136137

137-
# This should be 2013-11-01 05:00 in UTC -> converted to Tokyo tz (+09:00)
138+
# This should be 2013-11-01 05:00 in UTC
139+
# converted to Tokyo tz (+09:00)
138140
result = Timestamp('2013-11-01 00:00:00-0500', tz='Asia/Tokyo')
139141
self.assertEqual(result.value, Timestamp('2013-11-01 05:00').value)
140-
expected_repr = "Timestamp('2013-11-01 14:00:00+0900', tz='Asia/Tokyo')"
141-
self.assertEqual(repr(result), expected_repr)
142+
expected = "Timestamp('2013-11-01 14:00:00+0900', tz='Asia/Tokyo')"
143+
self.assertEqual(repr(result), expected)
142144
self.assertEqual(result, eval(repr(result)))
143-
145+
144146
# GH11708
145-
# This should be 2015-11-18 10:00 in UTC -> converted to Asia/Katmandu tz
147+
# This should be 2015-11-18 10:00 in UTC
148+
# converted to Asia/Katmandu
146149
result = Timestamp("2015-11-18 15:45:00+05:45", tz="Asia/Katmandu")
147150
self.assertEqual(result.value, Timestamp("2015-11-18 10:00").value)
148-
expected_repr = "Timestamp('2015-11-18 15:45:00+0545', tz='Asia/Katmandu')"
149-
self.assertEqual(repr(result), expected_repr)
151+
expected = "Timestamp('2015-11-18 15:45:00+0545', tz='Asia/Katmandu')"
152+
self.assertEqual(repr(result), expected)
150153
self.assertEqual(result, eval(repr(result)))
151-
152-
# This should be 2015-11-18 10:00 in UTC -> converted to Asia/Kolkata tz
154+
155+
# This should be 2015-11-18 10:00 in UTC
156+
# converted to Asia/Kolkata
153157
result = Timestamp("2015-11-18 15:30:00+05:30", tz="Asia/Kolkata")
154158
self.assertEqual(result.value, Timestamp("2015-11-18 10:00").value)
155-
expected_repr = "Timestamp('2015-11-18 15:30:00+0530', tz='Asia/Kolkata')"
156-
self.assertEqual(repr(result), expected_repr)
159+
expected = "Timestamp('2015-11-18 15:30:00+0530', tz='Asia/Kolkata')"
160+
self.assertEqual(repr(result), expected)
157161
self.assertEqual(result, eval(repr(result)))
158162

159163
def test_constructor_invalid(self):
@@ -629,8 +633,6 @@ def test_parsers_time(self):
629633
new_string = "14.15"
630634
self.assertRaises(ValueError, tools.to_time, new_string)
631635
self.assertEqual(tools.to_time(new_string, format="%H.%M"), expected)
632-
tools.add_time_format("%H.%M")
633-
self.assertEqual(tools.to_time(new_string), expected)
634636

635637
arg = ["14:15", "20:20"]
636638
expected_arr = [datetime.time(14, 15), datetime.time(20, 20)]
@@ -681,15 +683,17 @@ def test_parsers_quarterly_with_freq(self):
681683
self.assertEqual(result, exp)
682684

683685
def test_parsers_timezone_minute_offsets_roundtrip(self):
684-
#GH11708
686+
# GH11708
685687
base = to_datetime("2013-01-01 00:00:00")
686-
dt_strings = [('2013-01-01 05:45+0545',
687-
"Asia/Katmandu",
688-
"Timestamp('2013-01-01 05:45:00+0545', tz='Asia/Katmandu')"),
689-
('2013-01-01 05:30+0530',
690-
"Asia/Kolkata",
691-
"Timestamp('2013-01-01 05:30:00+0530', tz='Asia/Kolkata')")]
692-
688+
dt_strings = [
689+
('2013-01-01 05:45+0545',
690+
"Asia/Katmandu",
691+
"Timestamp('2013-01-01 05:45:00+0545', tz='Asia/Katmandu')"),
692+
('2013-01-01 05:30+0530',
693+
"Asia/Kolkata",
694+
"Timestamp('2013-01-01 05:30:00+0530', tz='Asia/Kolkata')")
695+
]
696+
693697
for dt_string, tz, dt_string_repr in dt_strings:
694698
dt_time = to_datetime(dt_string)
695699
self.assertEqual(base, dt_time)

pandas/tseries/tools.py

+18-17
Original file line numberDiff line numberDiff line change
@@ -365,11 +365,15 @@ def _convert_listlike(arg, box, format, name=None):
365365

366366
if result is None and (format is None or infer_datetime_format):
367367
result = tslib.array_to_datetime(
368-
arg, errors=errors,
369-
utc=utc, dayfirst=dayfirst,
370-
yearfirst=yearfirst,
371-
freq=freq, unit=unit,
372-
require_iso8601=require_iso8601)
368+
arg,
369+
errors=errors,
370+
utc=utc,
371+
dayfirst=dayfirst,
372+
yearfirst=yearfirst,
373+
freq=freq,
374+
unit=unit,
375+
require_iso8601=require_iso8601
376+
)
373377

374378
if com.is_datetime64_dtype(result) and box:
375379
result = DatetimeIndex(result,
@@ -413,9 +417,10 @@ def _attempt_YYYYMMDD(arg, errors):
413417
def calc(carg):
414418
# calculate the actual result
415419
carg = carg.astype(object)
416-
return tslib.array_to_datetime(
417-
lib.try_parse_year_month_day(carg/10000, carg/100 % 100,
418-
carg % 100), errors=errors)
420+
parsed = lib.try_parse_year_month_day(carg/10000,
421+
carg/100 % 100,
422+
carg % 100)
423+
return tslib.array_to_datetime(parsed, errors=errors)
419424

420425
def calc_with_mask(carg, mask):
421426
result = np.empty(carg.shape, dtype='M8[ns]')
@@ -494,10 +499,6 @@ def parse_time_string(arg, freq=None, dayfirst=None, yearfirst=None):
494499
"%H:%M:%S", "%H%M%S", "%I:%M:%S%p", "%I%M%S%p"]
495500

496501

497-
def add_time_format(time_format):
498-
_time_formats.append(time_format)
499-
500-
501502
def _guess_time_format_for_array(arr):
502503
# Try to guess the format based on the first non-NaN element
503504
non_nan_elements = com.notnull(arr).nonzero()[0]
@@ -527,7 +528,7 @@ def to_time(arg, format=None, infer_time_format=False, errors='raise'):
527528
arg : string in time format, datetime.time, list, tuple, 1-d array, Series
528529
format : str, default None
529530
Format used to convert arg into a time object. If None, fixed formats
530-
are used. Use tools.add_time_format to add an additional fixed format.
531+
are used.
531532
infer_time_format: bool, default False
532533
Infer the time format based on the first non-NaN element. If all
533534
strings are in the same format, this will speed up conversion.
@@ -580,8 +581,8 @@ def _convert_listlike(arg, format):
580581
time_format).time()
581582
if not format_found:
582583
# Put the found format in front
583-
formats.insert(0, formats.pop(
584-
formats.index(time_format)))
584+
fmt = formats.pop(formats.index(time_format))
585+
formats.insert(0, fmt)
585586
format_found = True
586587
break
587588
except (ValueError, TypeError):
@@ -590,8 +591,8 @@ def _convert_listlike(arg, format):
590591
if time_object is not None:
591592
times.append(time_object)
592593
elif errors == 'raise':
593-
raise ValueError("Cannot convert arg %s to a time. Pass "
594-
"in format or add default format." % arg)
594+
raise ValueError("Cannot convert arg {arg} to "
595+
"a time".format(arg=arg))
595596
elif errors == 'ignore':
596597
return arg
597598
else:

0 commit comments

Comments
 (0)