Skip to content

Commit 085af07

Browse files
authored
DEPR: DateOffset.__call__ (#34171)
1 parent 507cb15 commit 085af07

File tree

3 files changed

+35
-16
lines changed

3 files changed

+35
-16
lines changed

doc/source/whatsnew/v1.1.0.rst

+1
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,7 @@ Deprecations
585585

586586
- :func:`pandas.api.types.is_categorical` is deprecated and will be removed in a future version; use `:func:pandas.api.types.is_categorical_dtype` instead (:issue:`33385`)
587587
- :meth:`Index.get_value` is deprecated and will be removed in a future version (:issue:`19728`)
588+
- :meth:`DateOffset.__call__` is deprecated and will be removed in a future version, use ``offset + other`` instead (:issue:`34171`)
588589

589590
.. ---------------------------------------------------------------------------
590591

pandas/_libs/tslibs/offsets.pyx

+6
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,12 @@ class _BaseOffset:
486486
return NotImplemented
487487

488488
def __call__(self, other):
489+
warnings.warn(
490+
"DateOffset.__call__ is deprecated and will be removed in a future "
491+
"version. Use `offset + other` instead.",
492+
FutureWarning,
493+
stacklevel=1,
494+
)
489495
return self.apply(other)
490496

491497
def __mul__(self, other):

pandas/tests/tseries/offsets/test_offsets.py

+28-16
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,9 @@ def test_hash(self):
756756
assert hash(self.offset2) == hash(self.offset2)
757757

758758
def test_call(self):
759-
assert self.offset2(self.d) == datetime(2008, 1, 3)
759+
with tm.assert_produces_warning(FutureWarning):
760+
# GH#34171 DateOffset.__call__ is deprecated
761+
assert self.offset2(self.d) == datetime(2008, 1, 3)
760762

761763
def testRollback1(self):
762764
assert BDay(10).rollback(self.d) == self.d
@@ -1040,13 +1042,15 @@ def test_hash(self, offset_name):
10401042
assert offset == offset
10411043

10421044
def test_call(self):
1043-
assert self.offset1(self.d) == datetime(2014, 7, 1, 11)
1044-
assert self.offset2(self.d) == datetime(2014, 7, 1, 13)
1045-
assert self.offset3(self.d) == datetime(2014, 6, 30, 17)
1046-
assert self.offset4(self.d) == datetime(2014, 6, 30, 14)
1047-
assert self.offset8(self.d) == datetime(2014, 7, 1, 11)
1048-
assert self.offset9(self.d) == datetime(2014, 7, 1, 22)
1049-
assert self.offset10(self.d) == datetime(2014, 7, 1, 1)
1045+
with tm.assert_produces_warning(FutureWarning):
1046+
# GH#34171 DateOffset.__call__ is deprecated
1047+
assert self.offset1(self.d) == datetime(2014, 7, 1, 11)
1048+
assert self.offset2(self.d) == datetime(2014, 7, 1, 13)
1049+
assert self.offset3(self.d) == datetime(2014, 6, 30, 17)
1050+
assert self.offset4(self.d) == datetime(2014, 6, 30, 14)
1051+
assert self.offset8(self.d) == datetime(2014, 7, 1, 11)
1052+
assert self.offset9(self.d) == datetime(2014, 7, 1, 22)
1053+
assert self.offset10(self.d) == datetime(2014, 7, 1, 1)
10501054

10511055
def test_sub(self):
10521056
# we have to override test_sub here because self.offset2 is not
@@ -2377,8 +2381,10 @@ def test_hash(self):
23772381
assert hash(self.offset2) == hash(self.offset2)
23782382

23792383
def test_call(self):
2380-
assert self.offset1(self.d) == datetime(2014, 7, 1, 11)
2381-
assert self.offset2(self.d) == datetime(2014, 7, 1, 11)
2384+
with tm.assert_produces_warning(FutureWarning):
2385+
# GH#34171 DateOffset.__call__ is deprecated
2386+
assert self.offset1(self.d) == datetime(2014, 7, 1, 11)
2387+
assert self.offset2(self.d) == datetime(2014, 7, 1, 11)
23822388

23832389
def testRollback1(self):
23842390
assert self.offset1.rollback(self.d) == self.d
@@ -2642,8 +2648,10 @@ def test_hash(self):
26422648
assert hash(self.offset2) == hash(self.offset2)
26432649

26442650
def test_call(self):
2645-
assert self.offset2(self.d) == datetime(2008, 1, 3)
2646-
assert self.offset2(self.nd) == datetime(2008, 1, 3)
2651+
with tm.assert_produces_warning(FutureWarning):
2652+
# GH#34171 DateOffset.__call__ is deprecated
2653+
assert self.offset2(self.d) == datetime(2008, 1, 3)
2654+
assert self.offset2(self.nd) == datetime(2008, 1, 3)
26472655

26482656
def testRollback1(self):
26492657
assert CDay(10).rollback(self.d) == self.d
@@ -2892,8 +2900,10 @@ def test_repr(self):
28922900
assert repr(self.offset) == "<CustomBusinessMonthEnd>"
28932901
assert repr(self.offset2) == "<2 * CustomBusinessMonthEnds>"
28942902

2895-
def testCall(self):
2896-
assert self.offset2(self.d) == datetime(2008, 2, 29)
2903+
def test_call(self):
2904+
with tm.assert_produces_warning(FutureWarning):
2905+
# GH#34171 DateOffset.__call__ is deprecated
2906+
assert self.offset2(self.d) == datetime(2008, 2, 29)
28972907

28982908
def testRollback1(self):
28992909
assert CDay(10).rollback(datetime(2007, 12, 31)) == datetime(2007, 12, 31)
@@ -3041,8 +3051,10 @@ def test_repr(self):
30413051
assert repr(self.offset) == "<CustomBusinessMonthBegin>"
30423052
assert repr(self.offset2) == "<2 * CustomBusinessMonthBegins>"
30433053

3044-
def testCall(self):
3045-
assert self.offset2(self.d) == datetime(2008, 3, 3)
3054+
def test_call(self):
3055+
with tm.assert_produces_warning(FutureWarning):
3056+
# GH#34171 DateOffset.__call__ is deprecated
3057+
assert self.offset2(self.d) == datetime(2008, 3, 3)
30463058

30473059
def testRollback1(self):
30483060
assert CDay(10).rollback(datetime(2007, 12, 31)) == datetime(2007, 12, 31)

0 commit comments

Comments
 (0)