Skip to content

Commit d38535c

Browse files
gfyoung3553x
authored andcommitted
Revert "ENH: Create a 'Y' alias for date_range yearly frequency" (#16976)
This reverts commit 9c096d2, as it was prematurely made.
1 parent 6e5786d commit d38535c

File tree

3 files changed

+41
-50
lines changed

3 files changed

+41
-50
lines changed

pandas/tests/io/test_html.py

+28
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@
33
import glob
44
import os
55
import re
6+
import threading
67
import warnings
78

89
try:
910
from importlib import import_module
1011
except ImportError:
1112
import_module = __import__
1213

14+
try:
15+
from importlib import reload
16+
except ImportError:
17+
pass
18+
1319
from distutils.version import LooseVersion
1420

1521
import pytest
@@ -22,6 +28,7 @@
2228
from pandas.compat import (map, zip, StringIO, string_types, BytesIO,
2329
is_platform_windows, PY3)
2430
from pandas.io.common import URLError, urlopen, file_path_to_url
31+
import pandas.io.html
2532
from pandas.io.html import read_html
2633
from pandas._libs.parsers import ParserError
2734

@@ -931,3 +938,24 @@ def test_same_ordering():
931938
dfs_lxml = read_html(filename, index_col=0, flavor=['lxml'])
932939
dfs_bs4 = read_html(filename, index_col=0, flavor=['bs4'])
933940
assert_framelist_equal(dfs_lxml, dfs_bs4)
941+
942+
class ErrorThread(threading.Thread):
943+
def run(self):
944+
try:
945+
super(ErrorThread, self).run()
946+
except Exception as e:
947+
self.err = e
948+
else:
949+
self.err = None
950+
951+
@pytest.mark.slow
952+
def test_importcheck_thread_safety():
953+
reload(pandas.io.html)
954+
filename = os.path.join(DATA_PATH, 'valid_markup.html')
955+
helper_thread1 = ErrorThread(target = read_html, args = (filename,))
956+
helper_thread2 = ErrorThread(target = read_html, args = (filename,))
957+
helper_thread1.start()
958+
helper_thread2.start()
959+
while(helper_thread1.is_alive() or helper_thread2.is_alive()):
960+
pass
961+
assert None == helper_thread1.err == helper_thread2.err

pandas/tests/tseries/test_frequencies.py

+13-28
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,9 @@ def test_anchored_shortcuts(self):
248248

249249
# ensure invalid cases fail as expected
250250
invalid_anchors = ['SM-0', 'SM-28', 'SM-29',
251-
'SM-FOO', 'BSM', 'SM--1',
251+
'SM-FOO', 'BSM', 'SM--1'
252252
'SMS-1', 'SMS-28', 'SMS-30',
253-
'SMS-BAR', 'SMS-BYR' 'BSMS',
254-
'SMS--2']
253+
'SMS-BAR', 'BSMS', 'SMS--2']
255254
for invalid_anchor in invalid_anchors:
256255
with tm.assert_raises_regex(ValueError,
257256
'Invalid frequency: '):
@@ -293,15 +292,11 @@ def test_get_rule_month():
293292

294293
result = frequencies._get_rule_month('A-DEC')
295294
assert (result == 'DEC')
296-
result = frequencies._get_rule_month('Y-DEC')
297-
assert (result == 'DEC')
298295
result = frequencies._get_rule_month(offsets.YearEnd())
299296
assert (result == 'DEC')
300297

301298
result = frequencies._get_rule_month('A-MAY')
302299
assert (result == 'MAY')
303-
result = frequencies._get_rule_month('Y-MAY')
304-
assert (result == 'MAY')
305300
result = frequencies._get_rule_month(offsets.YearEnd(month=5))
306301
assert (result == 'MAY')
307302

@@ -310,10 +305,6 @@ def test_period_str_to_code():
310305
assert (frequencies._period_str_to_code('A') == 1000)
311306
assert (frequencies._period_str_to_code('A-DEC') == 1000)
312307
assert (frequencies._period_str_to_code('A-JAN') == 1001)
313-
assert (frequencies._period_str_to_code('Y') == 1000)
314-
assert (frequencies._period_str_to_code('Y-DEC') == 1000)
315-
assert (frequencies._period_str_to_code('Y-JAN') == 1001)
316-
317308
assert (frequencies._period_str_to_code('Q') == 2000)
318309
assert (frequencies._period_str_to_code('Q-DEC') == 2000)
319310
assert (frequencies._period_str_to_code('Q-FEB') == 2002)
@@ -358,10 +349,6 @@ def test_freq_code(self):
358349
assert frequencies.get_freq('3A') == 1000
359350
assert frequencies.get_freq('-1A') == 1000
360351

361-
assert frequencies.get_freq('Y') == 1000
362-
assert frequencies.get_freq('3Y') == 1000
363-
assert frequencies.get_freq('-1Y') == 1000
364-
365352
assert frequencies.get_freq('W') == 4000
366353
assert frequencies.get_freq('W-MON') == 4001
367354
assert frequencies.get_freq('W-FRI') == 4005
@@ -382,13 +369,6 @@ def test_freq_group(self):
382369
assert frequencies.get_freq_group('-1A') == 1000
383370
assert frequencies.get_freq_group('A-JAN') == 1000
384371
assert frequencies.get_freq_group('A-MAY') == 1000
385-
386-
assert frequencies.get_freq_group('Y') == 1000
387-
assert frequencies.get_freq_group('3Y') == 1000
388-
assert frequencies.get_freq_group('-1Y') == 1000
389-
assert frequencies.get_freq_group('Y-JAN') == 1000
390-
assert frequencies.get_freq_group('Y-MAY') == 1000
391-
392372
assert frequencies.get_freq_group(offsets.YearEnd()) == 1000
393373
assert frequencies.get_freq_group(offsets.YearEnd(month=1)) == 1000
394374
assert frequencies.get_freq_group(offsets.YearEnd(month=5)) == 1000
@@ -810,6 +790,12 @@ def test_series(self):
810790
for freq in [None, 'L']:
811791
s = Series(period_range('2013', periods=10, freq=freq))
812792
pytest.raises(TypeError, lambda: frequencies.infer_freq(s))
793+
for freq in ['Y']:
794+
795+
msg = frequencies._INVALID_FREQ_ERROR
796+
with tm.assert_raises_regex(ValueError, msg):
797+
s = Series(period_range('2013', periods=10, freq=freq))
798+
pytest.raises(TypeError, lambda: frequencies.infer_freq(s))
813799

814800
# DateTimeIndex
815801
for freq in ['M', 'L', 'S']:
@@ -826,12 +812,11 @@ def test_legacy_offset_warnings(self):
826812
'W@FRI', 'W@SAT', 'W@SUN', 'Q@JAN', 'Q@FEB', 'Q@MAR',
827813
'A@JAN', 'A@FEB', 'A@MAR', 'A@APR', 'A@MAY', 'A@JUN',
828814
'A@JUL', 'A@AUG', 'A@SEP', 'A@OCT', 'A@NOV', 'A@DEC',
829-
'Y@JAN', 'WOM@1MON', 'WOM@2MON', 'WOM@3MON',
830-
'WOM@4MON', 'WOM@1TUE', 'WOM@2TUE', 'WOM@3TUE',
831-
'WOM@4TUE', 'WOM@1WED', 'WOM@2WED', 'WOM@3WED',
832-
'WOM@4WED', 'WOM@1THU', 'WOM@2THU', 'WOM@3THU',
833-
'WOM@4THU', 'WOM@1FRI', 'WOM@2FRI', 'WOM@3FRI',
834-
'WOM@4FRI']
815+
'WOM@1MON', 'WOM@2MON', 'WOM@3MON', 'WOM@4MON',
816+
'WOM@1TUE', 'WOM@2TUE', 'WOM@3TUE', 'WOM@4TUE',
817+
'WOM@1WED', 'WOM@2WED', 'WOM@3WED', 'WOM@4WED',
818+
'WOM@1THU', 'WOM@2THU', 'WOM@3THU', 'WOM@4THU'
819+
'WOM@1FRI', 'WOM@2FRI', 'WOM@3FRI', 'WOM@4FRI']
835820

836821
msg = frequencies._INVALID_FREQ_ERROR
837822
for freq in freqs:

pandas/tseries/frequencies.py

-22
Original file line numberDiff line numberDiff line change
@@ -422,27 +422,6 @@ def get_period_alias(offset_str):
422422
return _offset_to_period_map.get(offset_str, None)
423423

424424

425-
_pure_alias = {
426-
# 'A' is equivalent to 'Y'.
427-
'Y': 'A',
428-
'YS': 'AS',
429-
'BY': 'BA',
430-
'BYS': 'BAS',
431-
'Y-DEC': 'A-DEC',
432-
'Y-JAN': 'A-JAN',
433-
'Y-FEB': 'A-FEB',
434-
'Y-MAR': 'A-MAR',
435-
'Y-APR': 'A-APR',
436-
'Y-MAY': 'A-MAY',
437-
'Y-JUN': 'A-JUN',
438-
'Y-JUL': 'A-JUL',
439-
'Y-AUG': 'A-AUG',
440-
'Y-SEP': 'A-SEP',
441-
'Y-OCT': 'A-OCT',
442-
'Y-NOV': 'A-NOV',
443-
}
444-
445-
446425
_lite_rule_alias = {
447426
'W': 'W-SUN',
448427
'Q': 'Q-DEC',
@@ -739,7 +718,6 @@ def get_standard_freq(freq):
739718

740719

741720
def _period_str_to_code(freqstr):
742-
freqstr = _pure_alias.get(freqstr, freqstr)
743721
freqstr = _lite_rule_alias.get(freqstr, freqstr)
744722

745723
if freqstr not in _dont_uppercase:

0 commit comments

Comments
 (0)