1
1
from datetime import timedelta
2
- from pandas .compat import range , long , zip
2
+ from pandas .compat import long , zip
3
3
from pandas import compat
4
4
import re
5
5
import warnings
@@ -356,34 +356,6 @@ def get_period_alias(offset_str):
356
356
""" alias to closest period strings BQ->Q etc"""
357
357
return _offset_to_period_map .get (offset_str , None )
358
358
359
- _rule_aliases = {
360
- # Legacy rules that will continue to map to their original values
361
- # essentially for the rest of time
362
- 'WEEKDAY' : 'B' ,
363
- 'EOM' : 'BM' ,
364
- 'W@MON' : 'W-MON' ,
365
- 'W@TUE' : 'W-TUE' ,
366
- 'W@WED' : 'W-WED' ,
367
- 'W@THU' : 'W-THU' ,
368
- 'W@FRI' : 'W-FRI' ,
369
- 'W@SAT' : 'W-SAT' ,
370
- 'W@SUN' : 'W-SUN' ,
371
- 'Q@JAN' : 'BQ-JAN' ,
372
- 'Q@FEB' : 'BQ-FEB' ,
373
- 'Q@MAR' : 'BQ-MAR' ,
374
- 'A@JAN' : 'BA-JAN' ,
375
- 'A@FEB' : 'BA-FEB' ,
376
- 'A@MAR' : 'BA-MAR' ,
377
- 'A@APR' : 'BA-APR' ,
378
- 'A@MAY' : 'BA-MAY' ,
379
- 'A@JUN' : 'BA-JUN' ,
380
- 'A@JUL' : 'BA-JUL' ,
381
- 'A@AUG' : 'BA-AUG' ,
382
- 'A@SEP' : 'BA-SEP' ,
383
- 'A@OCT' : 'BA-OCT' ,
384
- 'A@NOV' : 'BA-NOV' ,
385
- 'A@DEC' : 'BA-DEC' ,
386
- }
387
359
388
360
_lite_rule_alias = {
389
361
'W' : 'W-SUN' ,
@@ -401,17 +373,6 @@ def get_period_alias(offset_str):
401
373
'ns' : 'N'
402
374
}
403
375
404
- # TODO: Can this be killed?
405
- for _i , _weekday in enumerate (['MON' , 'TUE' , 'WED' , 'THU' , 'FRI' ]):
406
- for _iweek in range (4 ):
407
- _name = 'WOM-%d%s' % (_iweek + 1 , _weekday )
408
- _rule_aliases [_name .replace ('-' , '@' )] = _name
409
-
410
- # Note that _rule_aliases is not 1:1 (d[BA]==d[A@DEC]), and so traversal
411
- # order matters when constructing an inverse. we pick one. #2331
412
- # Used in get_legacy_offset_name
413
- _legacy_reverse_map = dict ((v , k ) for k , v in
414
- reversed (sorted (compat .iteritems (_rule_aliases ))))
415
376
416
377
_name_to_offset_map = {'days' : Day (1 ),
417
378
'hours' : Hour (1 ),
@@ -422,6 +383,9 @@ def get_period_alias(offset_str):
422
383
'nanoseconds' : Nano (1 )}
423
384
424
385
386
+ _INVALID_FREQ_ERROR = "Invalid frequency: {0}"
387
+
388
+
425
389
def to_offset (freqstr ):
426
390
"""
427
391
Return DateOffset object from string representation or
@@ -460,7 +424,7 @@ def to_offset(freqstr):
460
424
else :
461
425
delta = delta + offset
462
426
except Exception :
463
- raise ValueError ("Could not evaluate %s" % freqstr )
427
+ raise ValueError (_INVALID_FREQ_ERROR . format ( freqstr ) )
464
428
465
429
else :
466
430
delta = None
@@ -479,10 +443,10 @@ def to_offset(freqstr):
479
443
else :
480
444
delta = delta + offset
481
445
except Exception :
482
- raise ValueError ("Could not evaluate %s" % freqstr )
446
+ raise ValueError (_INVALID_FREQ_ERROR . format ( freqstr ) )
483
447
484
448
if delta is None :
485
- raise ValueError ('Unable to understand %s as a frequency' % freqstr )
449
+ raise ValueError (_INVALID_FREQ_ERROR . format ( freqstr ) )
486
450
487
451
return delta
488
452
@@ -526,9 +490,6 @@ def get_base_alias(freqstr):
526
490
_dont_uppercase = set (('MS' , 'ms' ))
527
491
528
492
529
- _LEGACY_FREQ_WARNING = 'Freq "{0}" is deprecated, use "{1}" as alternative.'
530
-
531
-
532
493
def get_offset (name ):
533
494
"""
534
495
Return DateOffset object associated with rule name
@@ -539,27 +500,9 @@ def get_offset(name):
539
500
"""
540
501
if name not in _dont_uppercase :
541
502
name = name .upper ()
542
-
543
- if name in _rule_aliases :
544
- new = _rule_aliases [name ]
545
- warnings .warn (_LEGACY_FREQ_WARNING .format (name , new ),
546
- FutureWarning , stacklevel = 2 )
547
- name = new
548
- elif name .lower () in _rule_aliases :
549
- new = _rule_aliases [name .lower ()]
550
- warnings .warn (_LEGACY_FREQ_WARNING .format (name , new ),
551
- FutureWarning , stacklevel = 2 )
552
- name = new
553
-
554
503
name = _lite_rule_alias .get (name , name )
555
504
name = _lite_rule_alias .get (name .lower (), name )
556
-
557
505
else :
558
- if name in _rule_aliases :
559
- new = _rule_aliases [name ]
560
- warnings .warn (_LEGACY_FREQ_WARNING .format (name , new ),
561
- FutureWarning , stacklevel = 2 )
562
- name = new
563
506
name = _lite_rule_alias .get (name , name )
564
507
565
508
if name not in _offset_map :
@@ -571,7 +514,7 @@ def get_offset(name):
571
514
offset = klass ._from_name (* split [1 :])
572
515
except (ValueError , TypeError , KeyError ):
573
516
# bad prefix or suffix
574
- raise ValueError ('Bad rule name requested: %s.' % name )
517
+ raise ValueError (_INVALID_FREQ_ERROR . format ( name ) )
575
518
# cache
576
519
_offset_map [name ] = offset
577
520
# do not return cache because it's mutable
@@ -595,17 +538,6 @@ def get_offset_name(offset):
595
538
return offset .freqstr
596
539
597
540
598
- def get_legacy_offset_name (offset ):
599
- """
600
- Return the pre pandas 0.8.0 name for the date offset
601
- """
602
-
603
- # This only used in test_timeseries_legacy.py
604
-
605
- name = offset .name
606
- return _legacy_reverse_map .get (name , name )
607
-
608
-
609
541
def get_standard_freq (freq ):
610
542
"""
611
543
Return the standardized frequency string
@@ -796,36 +728,18 @@ def _period_alias_dictionary():
796
728
797
729
798
730
def _period_str_to_code (freqstr ):
799
- # hack
800
- if freqstr in _rule_aliases :
801
- new = _rule_aliases [freqstr ]
802
- warnings .warn (_LEGACY_FREQ_WARNING .format (freqstr , new ),
803
- FutureWarning , stacklevel = 3 )
804
- freqstr = new
805
731
freqstr = _lite_rule_alias .get (freqstr , freqstr )
806
732
807
733
if freqstr not in _dont_uppercase :
808
734
lower = freqstr .lower ()
809
- if lower in _rule_aliases :
810
- new = _rule_aliases [lower ]
811
- warnings .warn (_LEGACY_FREQ_WARNING .format (lower , new ),
812
- FutureWarning , stacklevel = 3 )
813
- freqstr = new
814
735
freqstr = _lite_rule_alias .get (lower , freqstr )
815
736
737
+ if freqstr not in _dont_uppercase :
738
+ freqstr = freqstr .upper ()
816
739
try :
817
- if freqstr not in _dont_uppercase :
818
- freqstr = freqstr .upper ()
819
740
return _period_code_map [freqstr ]
820
741
except KeyError :
821
- try :
822
- alias = _period_alias_dict [freqstr ]
823
- warnings .warn (_LEGACY_FREQ_WARNING .format (freqstr , alias ),
824
- FutureWarning , stacklevel = 3 )
825
- except KeyError :
826
- raise ValueError ("Unknown freqstr: %s" % freqstr )
827
-
828
- return _period_code_map [alias ]
742
+ raise ValueError (_INVALID_FREQ_ERROR .format (freqstr ))
829
743
830
744
831
745
def infer_freq (index , warn = True ):
0 commit comments