@@ -768,6 +768,12 @@ cdef class BaseOffset:
768
768
>>> pd.DateOffset(2).is_anchored()
769
769
False
770
770
"""
771
+ warnings.warn(
772
+ f"{type(self ).__name__}.is_anchored() is deprecated and will be removed "
773
+ f"in a future version , please use {type(self ).__name__}.n == 1 instead.",
774
+ FutureWarning ,
775
+ stacklevel = find_stack_level(),
776
+ )
771
777
return self.n == 1
772
778
773
779
# ------------------------------------------------------------------
@@ -954,6 +960,12 @@ cdef class Tick(SingleConstructorOffset):
954
960
return True
955
961
956
962
def is_anchored(self ) -> bool:
963
+ warnings.warn(
964
+ f"{type(self ).__name__}.is_anchored() is deprecated and will be removed "
965
+ f"in a future version , please use False instead.",
966
+ FutureWarning ,
967
+ stacklevel = find_stack_level(),
968
+ )
957
969
return False
958
970
959
971
# This is identical to BaseOffset.__hash__ , but has to be redefined here
@@ -1766,7 +1778,7 @@ cdef class BusinessDay(BusinessMixin):
1766
1778
s -= hrs * 3600
1767
1779
mts = int (s / 60 )
1768
1780
if mts != 0 :
1769
- off_str += str (mts) + " Min "
1781
+ off_str += str (mts) + " min "
1770
1782
s -= mts * 60
1771
1783
if s != 0 :
1772
1784
off_str += str (s) + " s"
@@ -2663,6 +2675,13 @@ cdef class QuarterOffset(SingleConstructorOffset):
2663
2675
return f"{self._prefix}-{month}"
2664
2676
2665
2677
def is_anchored(self ) -> bool:
2678
+ warnings.warn(
2679
+ f"{type(self ).__name__}.is_anchored() is deprecated and will be removed "
2680
+ f"in a future version , please use {type(self ).__name__}.n == 1 "
2681
+ f" and {type(self ).__name__}.startingMonth is not None instead.",
2682
+ FutureWarning ,
2683
+ stacklevel = find_stack_level(),
2684
+ )
2666
2685
return self.n == 1 and self.startingMonth is not None
2667
2686
2668
2687
def is_on_offset(self , dt: datetime ) -> bool:
@@ -3308,6 +3327,13 @@ cdef class Week(SingleConstructorOffset):
3308
3327
self ._cache = state.pop(" _cache" , {})
3309
3328
3310
3329
def is_anchored (self ) -> bool:
3330
+ warnings.warn(
3331
+ f"{type(self ).__name__}.is_anchored() is deprecated and will be removed "
3332
+ f"in a future version , please use {type(self ).__name__}.n == 1 "
3333
+ f" and {type(self ).__name__}.weekday is not None instead.",
3334
+ FutureWarning ,
3335
+ stacklevel = find_stack_level(),
3336
+ )
3311
3337
return self.n == 1 and self.weekday is not None
3312
3338
3313
3339
@apply_wraps
@@ -3597,6 +3623,12 @@ cdef class FY5253Mixin(SingleConstructorOffset):
3597
3623
self .variation = state.pop(" variation" )
3598
3624
3599
3625
def is_anchored (self ) -> bool:
3626
+ warnings.warn(
3627
+ f"{type(self ).__name__}.is_anchored() is deprecated and will be removed "
3628
+ f"in a future version , please use {type(self ).__name__}.n == 1 instead.",
3629
+ FutureWarning ,
3630
+ stacklevel = find_stack_level(),
3631
+ )
3600
3632
return (
3601
3633
self.n == 1 and self.startingMonth is not None and self.weekday is not None
3602
3634
)
@@ -4654,36 +4686,13 @@ _lite_rule_alias = {
4654
4686
" BYE" : " BYE-DEC" , # BYearEnd(month=12),
4655
4687
" BYS" : " BYS-JAN" , # BYearBegin(month=1),
4656
4688
4657
- " Min" : " min" ,
4658
4689
" min" : " min" ,
4659
4690
" ms" : " ms" ,
4660
4691
" us" : " us" ,
4661
4692
" ns" : " ns" ,
4662
4693
}
4663
4694
4664
- _dont_uppercase = {
4665
- " h" ,
4666
- " bh" ,
4667
- " cbh" ,
4668
- " MS" ,
4669
- " ms" ,
4670
- " s" ,
4671
- " me" ,
4672
- " qe" ,
4673
- " qe-dec" ,
4674
- " qe-jan" ,
4675
- " qe-feb" ,
4676
- " qe-mar" ,
4677
- " qe-apr" ,
4678
- " qe-may" ,
4679
- " qe-jun" ,
4680
- " qe-jul" ,
4681
- " qe-aug" ,
4682
- " qe-sep" ,
4683
- " qe-oct" ,
4684
- " qe-nov" ,
4685
- " ye" ,
4686
- }
4695
+ _dont_uppercase = {" h" , " bh" , " cbh" , " MS" , " ms" , " s" }
4687
4696
4688
4697
4689
4698
INVALID_FREQ_ERR_MSG = " Invalid frequency: {0}"
@@ -4702,7 +4711,29 @@ def _get_offset(name: str) -> BaseOffset:
4702
4711
--------
4703
4712
_get_offset('EOM') --> BMonthEnd(1)
4704
4713
"""
4705
- if name.lower() not in _dont_uppercase:
4714
+ if (
4715
+ name not in _lite_rule_alias
4716
+ and (name.upper() in _lite_rule_alias )
4717
+ and name != "ms"
4718
+ ):
4719
+ warnings.warn(
4720
+ f" \' {name}\' is deprecated and will be removed "
4721
+ f" in a future version, please use \' {name.upper()}\' instead." ,
4722
+ FutureWarning ,
4723
+ stacklevel = find_stack_level(),
4724
+ )
4725
+ elif (
4726
+ name not in _lite_rule_alias
4727
+ and (name.lower() in _lite_rule_alias)
4728
+ and name != " MS"
4729
+ ):
4730
+ warnings.warn(
4731
+ f" \' {name}\' is deprecated and will be removed "
4732
+ f" in a future version, please use \' {name.lower()}\' instead." ,
4733
+ FutureWarning ,
4734
+ stacklevel = find_stack_level(),
4735
+ )
4736
+ if name not in _dont_uppercase:
4706
4737
name = name.upper()
4707
4738
name = _lite_rule_alias.get(name, name)
4708
4739
name = _lite_rule_alias.get(name.lower(), name)
@@ -4795,40 +4826,60 @@ cpdef to_offset(freq, bint is_period=False):
4795
4826
4796
4827
tups = zip (split[0 ::4 ], split[1 ::4 ], split[2 ::4 ])
4797
4828
for n, (sep, stride, name) in enumerate (tups):
4798
- if is_period is False and name in c_OFFSET_DEPR_FREQSTR:
4829
+ if is_period is False and name.upper() in c_OFFSET_DEPR_FREQSTR:
4799
4830
warnings.warn(
4800
4831
f" \' {name}\' is deprecated and will be removed "
4801
4832
f" in a future version, please use "
4802
- f" \' {c_OFFSET_DEPR_FREQSTR.get(name)}\' instead." ,
4833
+ f" \' {c_OFFSET_DEPR_FREQSTR.get(name.upper() )}\' instead." ,
4803
4834
FutureWarning ,
4804
4835
stacklevel = find_stack_level(),
4805
4836
)
4806
- name = c_OFFSET_DEPR_FREQSTR[name]
4807
- if is_period is True and name in c_REVERSE_OFFSET_DEPR_FREQSTR:
4808
- if name.startswith(" Y" ):
4837
+ name = c_OFFSET_DEPR_FREQSTR[name.upper()]
4838
+ elif (is_period is False and
4839
+ name != name.upper() and
4840
+ name.upper() in c_REVERSE_OFFSET_DEPR_FREQSTR):
4841
+ warnings.warn(
4842
+ f" \' {name}\' is deprecated and will be removed "
4843
+ f" in a future version, please use "
4844
+ f" \' {name.upper()}\' instead." ,
4845
+ FutureWarning ,
4846
+ stacklevel = find_stack_level(),
4847
+ )
4848
+ name = name.upper()
4849
+ if is_period is True and name.upper() in c_REVERSE_OFFSET_DEPR_FREQSTR:
4850
+ if name.upper().startswith(" Y" ):
4809
4851
raise ValueError (
4810
- f" for Period, please use \' Y{name[2:]}\' "
4852
+ f" for Period, please use \' Y{name.upper() [2:]}\' "
4811
4853
f" instead of \' {name}\' "
4812
4854
)
4813
- if (name.startswith(" B" ) or
4814
- name.startswith(" S" ) or name.startswith(" C" )):
4855
+ if (name.upper().startswith(" B" ) or
4856
+ name.upper().startswith(" S" ) or
4857
+ name.upper().startswith(" C" )):
4815
4858
raise ValueError (INVALID_FREQ_ERR_MSG.format(name))
4816
4859
else :
4817
4860
raise ValueError (
4818
4861
f" for Period, please use "
4819
- f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name)}\' "
4862
+ f" \' {c_REVERSE_OFFSET_DEPR_FREQSTR.get(name.upper() )}\' "
4820
4863
f" instead of \' {name}\' "
4821
4864
)
4822
- elif is_period is True and name in c_OFFSET_DEPR_FREQSTR:
4823
- if name.startswith(" A" ):
4865
+ elif is_period is True and name.upper() in c_OFFSET_DEPR_FREQSTR:
4866
+ if name.upper(). startswith(" A" ):
4824
4867
warnings.warn(
4825
4868
f" \' {name}\' is deprecated and will be removed in a future "
4826
- f" version, please use \' {c_DEPR_ABBREVS.get(name)}\' "
4869
+ f" version, please use "
4870
+ f" \' {c_DEPR_ABBREVS.get(name.upper())}\' instead." ,
4871
+ FutureWarning ,
4872
+ stacklevel = find_stack_level(),
4873
+ )
4874
+ if name.upper() != name:
4875
+ warnings.warn(
4876
+ f" \' {name}\' is deprecated and will be removed in "
4877
+ f" a future version, please use \' {name.upper()}\' "
4827
4878
f" instead." ,
4828
4879
FutureWarning ,
4829
4880
stacklevel = find_stack_level(),
4830
4881
)
4831
- name = c_OFFSET_DEPR_FREQSTR.get(name)
4882
+ name = c_OFFSET_DEPR_FREQSTR.get(name.upper() )
4832
4883
4833
4884
if sep != " " and not sep.isspace():
4834
4885
raise ValueError (" separator must be spaces" )
0 commit comments