@@ -4711,29 +4711,7 @@ _lite_rule_alias = {
4711
4711
" ns" : " ns" ,
4712
4712
}
4713
4713
4714
- _dont_uppercase = {
4715
- " h" ,
4716
- " bh" ,
4717
- " cbh" ,
4718
- " MS" ,
4719
- " ms" ,
4720
- " s" ,
4721
- " me" ,
4722
- " qe" ,
4723
- " qe-dec" ,
4724
- " qe-jan" ,
4725
- " qe-feb" ,
4726
- " qe-mar" ,
4727
- " qe-apr" ,
4728
- " qe-may" ,
4729
- " qe-jun" ,
4730
- " qe-jul" ,
4731
- " qe-aug" ,
4732
- " qe-sep" ,
4733
- " qe-oct" ,
4734
- " qe-nov" ,
4735
- " ye" ,
4736
- }
4714
+ _dont_uppercase = _dont_uppercase = {" h" , " bh" , " cbh" , " MS" , " ms" , " s" }
4737
4715
4738
4716
4739
4717
INVALID_FREQ_ERR_MSG = " Invalid frequency: {0}"
@@ -4752,7 +4730,29 @@ def _get_offset(name: str) -> BaseOffset:
4752
4730
--------
4753
4731
_get_offset('EOM') --> BMonthEnd(1)
4754
4732
"""
4755
- if name.lower() not in _dont_uppercase:
4733
+ if (
4734
+ name not in _lite_rule_alias
4735
+ and (name.upper() in _lite_rule_alias )
4736
+ and name != "ms"
4737
+ ):
4738
+ warnings.warn(
4739
+ f" \' {name}\' is deprecated and will be removed "
4740
+ f" in a future version, please use \' {name.upper()}\' instead." ,
4741
+ FutureWarning ,
4742
+ stacklevel = find_stack_level(),
4743
+ )
4744
+ elif (
4745
+ name not in _lite_rule_alias
4746
+ and (name.lower() in _lite_rule_alias)
4747
+ and name != " MS"
4748
+ ):
4749
+ warnings.warn(
4750
+ f" \' {name}\' is deprecated and will be removed "
4751
+ f" in a future version, please use \' {name.lower()}\' instead." ,
4752
+ FutureWarning ,
4753
+ stacklevel = find_stack_level(),
4754
+ )
4755
+ if name not in _dont_uppercase:
4756
4756
name = name.upper()
4757
4757
name = _lite_rule_alias.get(name, name)
4758
4758
name = _lite_rule_alias.get(name.lower(), name)
@@ -4860,7 +4860,7 @@ cpdef to_offset(freq, bint is_period=False):
4860
4860
4861
4861
tups = zip (split[0 ::4 ], split[1 ::4 ], split[2 ::4 ])
4862
4862
for n, (sep, stride, name) in enumerate (tups):
4863
- if is_period is False and name.upper() in c_OFFSET_DEPR_FREQSTR:
4863
+ if not is_period and name.upper() in c_OFFSET_DEPR_FREQSTR:
4864
4864
warnings.warn(
4865
4865
f" \' {name}\' is deprecated and will be removed "
4866
4866
f" in a future version, please use "
@@ -4869,31 +4869,52 @@ cpdef to_offset(freq, bint is_period=False):
4869
4869
stacklevel = find_stack_level(),
4870
4870
)
4871
4871
name = c_OFFSET_DEPR_FREQSTR[name.upper()]
4872
- if is_period is True and name in c_REVERSE_OFFSET_DEPR_FREQSTR:
4873
- if name.startswith(" Y" ):
4872
+ if (not is_period and
4873
+ name != name.upper() and
4874
+ name.lower() not in {" s" , " ms" , " us" , " ns" } and
4875
+ name.upper().split(" -" )[0 ].endswith((" S" , " E" ))):
4876
+ warnings.warn(
4877
+ f" \' {name}\' is deprecated and will be removed "
4878
+ f" in a future version, please use "
4879
+ f" \' {name.upper()}\' instead." ,
4880
+ FutureWarning ,
4881
+ stacklevel = find_stack_level(),
4882
+ )
4883
+ name = name.upper()
4884
+ if is_period and name.upper() in c_REVERSE_OFFSET_DEPR_FREQSTR:
4885
+ if name.upper().startswith(" Y" ):
4874
4886
raise ValueError (
4875
- f" for Period, please use \' Y{name[2:]}\' "
4887
+ f" for Period, please use \' Y{name.upper() [2:]}\' "
4876
4888
f" instead of \' {name}\' "
4877
4889
)
4878
- if (name.startswith(" B" ) or
4879
- name.startswith(" S" ) or name.startswith(" C" )):
4890
+ if (name.upper().startswith(" B" ) or
4891
+ name.upper().startswith(" S" ) or
4892
+ name.upper().startswith(" C" )):
4880
4893
raise ValueError (INVALID_FREQ_ERR_MSG.format(name))
4881
4894
else :
4882
4895
raise ValueError (
4883
4896
f" for Period, please use "
4884
- f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name)}\' "
4897
+ f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name.upper() )}\' "
4885
4898
f" instead of \' {name}\' "
4886
4899
)
4887
- elif is_period is True and name in c_OFFSET_DEPR_FREQSTR:
4888
- if name.startswith(" A" ):
4900
+ elif is_period and name.upper() in c_OFFSET_DEPR_FREQSTR:
4901
+ if name.upper(). startswith(" A" ):
4889
4902
warnings.warn(
4890
4903
f" \' {name}\' is deprecated and will be removed in a future "
4891
- f" version, please use \' {c_DEPR_ABBREVS.get(name)}\' "
4904
+ f" version, please use "
4905
+ f" \' {c_DEPR_ABBREVS.get(name.upper())}\' instead." ,
4906
+ FutureWarning ,
4907
+ stacklevel = find_stack_level(),
4908
+ )
4909
+ if name.upper() != name:
4910
+ warnings.warn(
4911
+ f" \' {name}\' is deprecated and will be removed in "
4912
+ f" a future version, please use \' {name.upper()}\' "
4892
4913
f" instead." ,
4893
4914
FutureWarning ,
4894
4915
stacklevel = find_stack_level(),
4895
4916
)
4896
- name = c_OFFSET_DEPR_FREQSTR.get(name)
4917
+ name = c_OFFSET_DEPR_FREQSTR.get(name.upper() )
4897
4918
4898
4919
if sep != " " and not sep.isspace():
4899
4920
raise ValueError (" separator must be spaces" )
0 commit comments