@@ -4711,29 +4711,7 @@ _lite_rule_alias = {
47114711 " ns" : " ns" ,
47124712}
47134713
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" }
47374715
47384716
47394717INVALID_FREQ_ERR_MSG = " Invalid frequency: {0}"
@@ -4752,7 +4730,29 @@ def _get_offset(name: str) -> BaseOffset:
47524730 --------
47534731 _get_offset('EOM') --> BMonthEnd(1)
47544732 """
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:
47564756 name = name.upper()
47574757 name = _lite_rule_alias.get(name, name)
47584758 name = _lite_rule_alias.get(name.lower(), name)
@@ -4860,7 +4860,7 @@ cpdef to_offset(freq, bint is_period=False):
48604860
48614861 tups = zip (split[0 ::4 ], split[1 ::4 ], split[2 ::4 ])
48624862 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:
48644864 warnings.warn(
48654865 f" \' {name}\' is deprecated and will be removed "
48664866 f" in a future version, please use "
@@ -4869,31 +4869,52 @@ cpdef to_offset(freq, bint is_period=False):
48694869 stacklevel = find_stack_level(),
48704870 )
48714871 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" ):
48744886 raise ValueError (
4875- f" for Period, please use \' Y{name[2:]}\' "
4887+ f" for Period, please use \' Y{name.upper() [2:]}\' "
48764888 f" instead of \' {name}\' "
48774889 )
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" )):
48804893 raise ValueError (INVALID_FREQ_ERR_MSG.format(name))
48814894 else :
48824895 raise ValueError (
48834896 f" for Period, please use "
4884- f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name)}\' "
4897+ f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name.upper() )}\' "
48854898 f" instead of \' {name}\' "
48864899 )
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" ):
48894902 warnings.warn(
48904903 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()}\' "
48924913 f" instead." ,
48934914 FutureWarning ,
48944915 stacklevel = find_stack_level(),
48954916 )
4896- name = c_OFFSET_DEPR_FREQSTR.get(name)
4917+ name = c_OFFSET_DEPR_FREQSTR.get(name.upper() )
48974918
48984919 if sep != " " and not sep.isspace():
48994920 raise ValueError (" separator must be spaces" )
0 commit comments