@@ -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)
@@ -4845,7 +4845,7 @@ cpdef to_offset(freq, bint is_period=False):
48454845
48464846 tups = zip (split[0 ::4 ], split[1 ::4 ], split[2 ::4 ])
48474847 for n, (sep, stride, name) in enumerate (tups):
4848- if is_period is False and name.upper() in c_OFFSET_DEPR_FREQSTR:
4848+ if not is_period and name.upper() in c_OFFSET_DEPR_FREQSTR:
48494849 warnings.warn(
48504850 f" \' {name}\' is deprecated and will be removed "
48514851 f" in a future version, please use "
@@ -4854,31 +4854,52 @@ cpdef to_offset(freq, bint is_period=False):
48544854 stacklevel = find_stack_level(),
48554855 )
48564856 name = c_OFFSET_DEPR_FREQSTR[name.upper()]
4857- if is_period is True and name in c_REVERSE_OFFSET_DEPR_FREQSTR:
4858- if name.startswith(" Y" ):
4857+ if (not is_period and
4858+ name != name.upper() and
4859+ name.lower() not in {" s" , " ms" , " us" , " ns" } and
4860+ name.upper().split(" -" )[0 ].endswith((" S" , " E" ))):
4861+ warnings.warn(
4862+ f" \' {name}\' is deprecated and will be removed "
4863+ f" in a future version, please use "
4864+ f" \' {name.upper()}\' instead." ,
4865+ FutureWarning ,
4866+ stacklevel = find_stack_level(),
4867+ )
4868+ name = name.upper()
4869+ if is_period and name.upper() in c_REVERSE_OFFSET_DEPR_FREQSTR:
4870+ if name.upper().startswith(" Y" ):
48594871 raise ValueError (
4860- f" for Period, please use \' Y{name[2:]}\' "
4872+ f" for Period, please use \' Y{name.upper() [2:]}\' "
48614873 f" instead of \' {name}\' "
48624874 )
4863- if (name.startswith(" B" ) or
4864- name.startswith(" S" ) or name.startswith(" C" )):
4875+ if (name.upper().startswith(" B" ) or
4876+ name.upper().startswith(" S" ) or
4877+ name.upper().startswith(" C" )):
48654878 raise ValueError (INVALID_FREQ_ERR_MSG.format(name))
48664879 else :
48674880 raise ValueError (
48684881 f" for Period, please use "
4869- f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name)}\' "
4882+ f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name.upper() )}\' "
48704883 f" instead of \' {name}\' "
48714884 )
4872- elif is_period is True and name in c_OFFSET_DEPR_FREQSTR:
4873- if name.startswith(" A" ):
4885+ elif is_period and name.upper() in c_OFFSET_DEPR_FREQSTR:
4886+ if name.upper(). startswith(" A" ):
48744887 warnings.warn(
48754888 f" \' {name}\' is deprecated and will be removed in a future "
4876- f" version, please use \' {c_DEPR_ABBREVS.get(name)}\' "
4889+ f" version, please use "
4890+ f" \' {c_DEPR_ABBREVS.get(name.upper())}\' instead." ,
4891+ FutureWarning ,
4892+ stacklevel = find_stack_level(),
4893+ )
4894+ if name.upper() != name:
4895+ warnings.warn(
4896+ f" \' {name}\' is deprecated and will be removed in "
4897+ f" a future version, please use \' {name.upper()}\' "
48774898 f" instead." ,
48784899 FutureWarning ,
48794900 stacklevel = find_stack_level(),
48804901 )
4881- name = c_OFFSET_DEPR_FREQSTR.get(name)
4902+ name = c_OFFSET_DEPR_FREQSTR.get(name.upper() )
48824903
48834904 if sep != " " and not sep.isspace():
48844905 raise ValueError (" separator must be spaces" )
0 commit comments