From f880785a5473676f9927e30baf3a1b2417c89ac6 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Thu, 2 Apr 2020 10:36:50 -0700 Subject: [PATCH 1/6] REF: de-duplicate block_shape calls --- pandas/core/internals/__init__.py | 2 -- pandas/core/internals/blocks.py | 22 ++++++++-------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/pandas/core/internals/__init__.py b/pandas/core/internals/__init__.py index e70652b81c42f..a220b6186d56b 100644 --- a/pandas/core/internals/__init__.py +++ b/pandas/core/internals/__init__.py @@ -10,7 +10,6 @@ IntBlock, ObjectBlock, TimeDeltaBlock, - _block_shape, _safe_reshape, make_block, ) @@ -36,7 +35,6 @@ "TimeDeltaBlock", "_safe_reshape", "make_block", - "_block_shape", "BlockManager", "SingleBlockManager", "concatenate_block_managers", diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index bdfb44cdc2fa3..e2953c0b8e4ab 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -244,6 +244,8 @@ def make_block(self, values, placement=None) -> "Block": """ if placement is None: placement = self.mgr_locs + if self.is_extension: + values = _block_shape(values, ndim=self.ndim) return make_block(values, placement=placement, ndim=self.ndim) @@ -358,13 +360,12 @@ def _split_op_result(self, result) -> List["Block"]: nbs = [] for i, loc in enumerate(self.mgr_locs): vals = result[i] - nv = _block_shape(vals, ndim=self.ndim) - block = self.make_block(values=nv, placement=[loc]) + block = self.make_block(values=vals, placement=[loc]) nbs.append(block) return nbs if not isinstance(result, Block): - result = self.make_block(values=_block_shape(result, ndim=self.ndim)) + result = self.make_block(result) return [result] @@ -1282,9 +1283,6 @@ def take_nd(self, indexer, axis: int, new_mgr_locs=None, fill_tuple=None): def diff(self, n: int, axis: int = 1) -> List["Block"]: """ return block for the diff of the values """ new_values = algos.diff(self.values, n, axis=axis, stacklevel=7) - # We use block_shape for ExtensionBlock subclasses, which may call here - # via a super. - new_values = _block_shape(new_values, ndim=self.ndim) return [self.make_block(values=new_values)] def shift(self, periods, axis: int = 0, fill_value=None): @@ -2296,7 +2294,7 @@ def concat_same_type(self, to_concat): values = values.astype(object, copy=False) placement = self.mgr_locs if self.ndim == 2 else slice(len(values)) - return self.make_block(_block_shape(values, self.ndim), placement=placement) + return self.make_block(values, placement=placement) return super().concat_same_type(to_concat) def fillna(self, value, limit=None, inplace=False, downcast=None): @@ -2487,7 +2485,6 @@ def f(mask, val, idx): # TODO: allow EA once reshape is supported values = values.reshape(shape) - values = _block_shape(values, ndim=self.ndim) return values if self.ndim == 2: @@ -2769,9 +2766,7 @@ def concat_same_type(self, to_concat): ) placement = self.mgr_locs if self.ndim == 2 else slice(len(values)) # not using self.make_block_same_class as values can be object dtype - return self.make_block( - _block_shape(values, ndim=self.ndim), placement=placement - ) + return self.make_block(values, placement=placement) def replace( self, @@ -2890,11 +2885,10 @@ def _extend_blocks(result, blocks=None): return blocks -def _block_shape(values, ndim=1, shape=None): +def _block_shape(values: ArrayLike, ndim: int = 1) -> ArrayLike: """ guarantee the shape of the values to be at least 1 d """ if values.ndim < ndim: - if shape is None: - shape = values.shape + shape = values.shape if not is_extension_array_dtype(values): # TODO: https://github.com/pandas-dev/pandas/issues/23023 # block.shape is incorrect for "2D" ExtensionArrays From dc21c2810b70ed3dc63c13f326c95fe07dcaf601 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 5 Apr 2020 16:20:41 -0700 Subject: [PATCH 2/6] mypy fixup --- pandas/core/internals/blocks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index 119877239492f..a6f00e53a4c1e 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -2858,8 +2858,8 @@ def _block_shape(values: ArrayLike, ndim: int = 1) -> ArrayLike: """ guarantee the shape of the values to be at least 1 d """ if values.ndim < ndim: shape = values.shape - if not is_extension_array_dtype(values): - # TODO: https://github.com/pandas-dev/pandas/issues/23023 + if isinstance(values, np.ndarray): + # TODO(EA2D): https://github.com/pandas-dev/pandas/issues/23023 # block.shape is incorrect for "2D" ExtensionArrays # We can't, and don't need to, reshape. values = values.reshape(tuple((1,) + shape)) From 31dcd84fb23fe334753b41073bd7128a640bed90 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 5 Apr 2020 16:28:03 -0700 Subject: [PATCH 3/6] troubleshoot doc build --- doc/source/reference/offset_frequency.rst | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/doc/source/reference/offset_frequency.rst b/doc/source/reference/offset_frequency.rst index fc1c6d6bd6d47..17544cb7a1225 100644 --- a/doc/source/reference/offset_frequency.rst +++ b/doc/source/reference/offset_frequency.rst @@ -37,6 +37,7 @@ Methods DateOffset.onOffset DateOffset.is_anchored DateOffset.is_on_offset + DateOffset.__call__ BusinessDay ----------- @@ -69,6 +70,7 @@ Methods BusinessDay.onOffset BusinessDay.is_anchored BusinessDay.is_on_offset + BusinessDay.__call__ BusinessHour ------------ @@ -100,6 +102,7 @@ Methods BusinessHour.onOffset BusinessHour.is_anchored BusinessHour.is_on_offset + BusinessHour.__call__ CustomBusinessDay ----------------- @@ -131,6 +134,7 @@ Methods CustomBusinessDay.onOffset CustomBusinessDay.is_anchored CustomBusinessDay.is_on_offset + CustomBusinessDay.__call__ CustomBusinessHour ------------------ @@ -162,6 +166,7 @@ Methods CustomBusinessHour.onOffset CustomBusinessHour.is_anchored CustomBusinessHour.is_on_offset + CustomBusinessHour.__call__ MonthOffset ----------- @@ -194,6 +199,7 @@ Methods MonthOffset.onOffset MonthOffset.is_anchored MonthOffset.is_on_offset + MonthOffset.__call__ MonthEnd -------- @@ -226,6 +232,7 @@ Methods MonthEnd.onOffset MonthEnd.is_anchored MonthEnd.is_on_offset + MonthEnd.__call__ MonthBegin ---------- @@ -258,6 +265,7 @@ Methods MonthBegin.onOffset MonthBegin.is_anchored MonthBegin.is_on_offset + MonthBegin.__call__ BusinessMonthEnd ---------------- @@ -290,6 +298,7 @@ Methods BusinessMonthEnd.onOffset BusinessMonthEnd.is_anchored BusinessMonthEnd.is_on_offset + BusinessMonthEnd.__call__ BusinessMonthBegin ------------------ @@ -322,6 +331,7 @@ Methods BusinessMonthBegin.onOffset BusinessMonthBegin.is_anchored BusinessMonthBegin.is_on_offset + BusinessMonthBegin.__call__ CustomBusinessMonthEnd ---------------------- @@ -354,6 +364,7 @@ Methods CustomBusinessMonthEnd.onOffset CustomBusinessMonthEnd.is_anchored CustomBusinessMonthEnd.is_on_offset + CustomBusinessMonthEnd.__call__ CustomBusinessMonthBegin ------------------------ @@ -386,6 +397,7 @@ Methods CustomBusinessMonthBegin.onOffset CustomBusinessMonthBegin.is_anchored CustomBusinessMonthBegin.is_on_offset + CustomBusinessMonthBegin.__call__ SemiMonthOffset --------------- @@ -418,6 +430,7 @@ Methods SemiMonthOffset.onOffset SemiMonthOffset.is_anchored SemiMonthOffset.is_on_offset + SemiMonthOffset.__call__ SemiMonthEnd ------------ @@ -450,6 +463,7 @@ Methods SemiMonthEnd.onOffset SemiMonthEnd.is_anchored SemiMonthEnd.is_on_offset + SemiMonthEnd.__call__ SemiMonthBegin -------------- @@ -482,6 +496,7 @@ Methods SemiMonthBegin.onOffset SemiMonthBegin.is_anchored SemiMonthBegin.is_on_offset + SemiMonthBegin.__call__ Week ---- @@ -514,6 +529,7 @@ Methods Week.onOffset Week.is_anchored Week.is_on_offset + Week.__call__ WeekOfMonth ----------- @@ -545,6 +561,7 @@ Methods WeekOfMonth.onOffset WeekOfMonth.is_anchored WeekOfMonth.is_on_offset + WeekOfMonth.__call__ LastWeekOfMonth --------------- @@ -576,6 +593,7 @@ Methods LastWeekOfMonth.onOffset LastWeekOfMonth.is_anchored LastWeekOfMonth.is_on_offset + LastWeekOfMonth.__call__ QuarterOffset ------------- @@ -608,6 +626,7 @@ Methods QuarterOffset.onOffset QuarterOffset.is_anchored QuarterOffset.is_on_offset + QuarterOffset.__call__ BQuarterEnd ----------- @@ -640,6 +659,7 @@ Methods BQuarterEnd.onOffset BQuarterEnd.is_anchored BQuarterEnd.is_on_offset + BQuarterEnd.__call__ BQuarterBegin ------------- @@ -672,6 +692,7 @@ Methods BQuarterBegin.onOffset BQuarterBegin.is_anchored BQuarterBegin.is_on_offset + BQuarterBegin.__call__ QuarterEnd ---------- @@ -704,6 +725,7 @@ Methods QuarterEnd.onOffset QuarterEnd.is_anchored QuarterEnd.is_on_offset + QuarterEnd.__call__ QuarterBegin ------------ @@ -736,6 +758,7 @@ Methods QuarterBegin.onOffset QuarterBegin.is_anchored QuarterBegin.is_on_offset + QuarterBegin.__call__ YearOffset ---------- @@ -768,6 +791,7 @@ Methods YearOffset.onOffset YearOffset.is_anchored YearOffset.is_on_offset + YearOffset.__call__ BYearEnd -------- @@ -800,6 +824,7 @@ Methods BYearEnd.onOffset BYearEnd.is_anchored BYearEnd.is_on_offset + BYearEnd.__call__ BYearBegin ---------- @@ -832,6 +857,7 @@ Methods BYearBegin.onOffset BYearBegin.is_anchored BYearBegin.is_on_offset + BYearBegin.__call__ YearEnd ------- @@ -864,6 +890,7 @@ Methods YearEnd.onOffset YearEnd.is_anchored YearEnd.is_on_offset + YearEnd.__call__ YearBegin --------- @@ -896,6 +923,7 @@ Methods YearBegin.onOffset YearBegin.is_anchored YearBegin.is_on_offset + YearBegin.__call__ FY5253 ------ @@ -929,6 +957,7 @@ Methods FY5253.onOffset FY5253.is_anchored FY5253.is_on_offset + FY5253.__call__ FY5253Quarter ------------- @@ -962,6 +991,7 @@ Methods FY5253Quarter.is_anchored FY5253Quarter.is_on_offset FY5253Quarter.year_has_extra_week + FY5253Quarter.__call__ Easter ------ @@ -993,6 +1023,7 @@ Methods Easter.onOffset Easter.is_anchored Easter.is_on_offset + Easter.__call__ Tick ---- @@ -1024,6 +1055,7 @@ Methods Tick.onOffset Tick.is_anchored Tick.is_on_offset + Tick.__call__ Day --- @@ -1055,6 +1087,7 @@ Methods Day.onOffset Day.is_anchored Day.is_on_offset + Day.__call__ Hour ---- @@ -1086,6 +1119,7 @@ Methods Hour.onOffset Hour.is_anchored Hour.is_on_offset + Hour.__call__ Minute ------ @@ -1117,6 +1151,7 @@ Methods Minute.onOffset Minute.is_anchored Minute.is_on_offset + Minute.__call__ Second ------ @@ -1148,6 +1183,7 @@ Methods Second.onOffset Second.is_anchored Second.is_on_offset + Second.__call__ Milli ----- @@ -1179,6 +1215,7 @@ Methods Milli.onOffset Milli.is_anchored Milli.is_on_offset + Milli.__call__ Micro ----- @@ -1210,6 +1247,7 @@ Methods Micro.onOffset Micro.is_anchored Micro.is_on_offset + Micro.__call__ Nano ---- @@ -1241,6 +1279,7 @@ Methods Nano.onOffset Nano.is_anchored Nano.is_on_offset + Nano.__call__ BDay ---- @@ -1277,6 +1316,7 @@ Methods BDay.is_on_offset BDay.rollback BDay.rollforward + BDay.__call__ BMonthEnd --------- @@ -1312,6 +1352,7 @@ Methods BMonthEnd.is_on_offset BMonthEnd.rollback BMonthEnd.rollforward + BMonthEnd.__call__ BMonthBegin ----------- @@ -1347,6 +1388,7 @@ Methods BMonthBegin.is_on_offset BMonthBegin.rollback BMonthBegin.rollforward + BMonthBegin.__call__ CBMonthEnd ---------- @@ -1386,6 +1428,7 @@ Methods CBMonthEnd.is_on_offset CBMonthEnd.rollback CBMonthEnd.rollforward + CBMonthEnd.__call__ CBMonthBegin ------------ @@ -1425,6 +1468,7 @@ Methods CBMonthBegin.is_on_offset CBMonthBegin.rollback CBMonthBegin.rollforward + CBMonthBegin.__call__ CDay ---- @@ -1461,6 +1505,7 @@ Methods CDay.is_on_offset CDay.rollback CDay.rollforward + CDay.__call__ .. _api.frequencies: From 252025e29cb81154470c77b22532bbc8efea4020 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 5 Apr 2020 16:51:32 -0700 Subject: [PATCH 4/6] kludge --- pandas/core/internals/blocks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index a6f00e53a4c1e..77e06f0806a44 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -2858,11 +2858,11 @@ def _block_shape(values: ArrayLike, ndim: int = 1) -> ArrayLike: """ guarantee the shape of the values to be at least 1 d """ if values.ndim < ndim: shape = values.shape - if isinstance(values, np.ndarray): + if hasattr(values, "reshape"): # TODO(EA2D): https://github.com/pandas-dev/pandas/issues/23023 # block.shape is incorrect for "2D" ExtensionArrays # We can't, and don't need to, reshape. - values = values.reshape(tuple((1,) + shape)) + values = values.reshape(tuple((1,) + shape)) # type: ignore return values From f46abaa853b40a1ce8232429efe4995acb078989 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 5 Apr 2020 18:23:29 -0700 Subject: [PATCH 5/6] troubleshoot --- pandas/core/internals/blocks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index 77e06f0806a44..316811f46cbfb 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -2858,7 +2858,7 @@ def _block_shape(values: ArrayLike, ndim: int = 1) -> ArrayLike: """ guarantee the shape of the values to be at least 1 d """ if values.ndim < ndim: shape = values.shape - if hasattr(values, "reshape"): + if not is_extension_array_dtype(values.dtype): # TODO(EA2D): https://github.com/pandas-dev/pandas/issues/23023 # block.shape is incorrect for "2D" ExtensionArrays # We can't, and don't need to, reshape. From c71cf573af3db223fd9dfd8c98386eb86a829617 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Sun, 5 Apr 2020 18:23:52 -0700 Subject: [PATCH 6/6] revert docs --- doc/source/reference/offset_frequency.rst | 45 ----------------------- 1 file changed, 45 deletions(-) diff --git a/doc/source/reference/offset_frequency.rst b/doc/source/reference/offset_frequency.rst index 17544cb7a1225..fc1c6d6bd6d47 100644 --- a/doc/source/reference/offset_frequency.rst +++ b/doc/source/reference/offset_frequency.rst @@ -37,7 +37,6 @@ Methods DateOffset.onOffset DateOffset.is_anchored DateOffset.is_on_offset - DateOffset.__call__ BusinessDay ----------- @@ -70,7 +69,6 @@ Methods BusinessDay.onOffset BusinessDay.is_anchored BusinessDay.is_on_offset - BusinessDay.__call__ BusinessHour ------------ @@ -102,7 +100,6 @@ Methods BusinessHour.onOffset BusinessHour.is_anchored BusinessHour.is_on_offset - BusinessHour.__call__ CustomBusinessDay ----------------- @@ -134,7 +131,6 @@ Methods CustomBusinessDay.onOffset CustomBusinessDay.is_anchored CustomBusinessDay.is_on_offset - CustomBusinessDay.__call__ CustomBusinessHour ------------------ @@ -166,7 +162,6 @@ Methods CustomBusinessHour.onOffset CustomBusinessHour.is_anchored CustomBusinessHour.is_on_offset - CustomBusinessHour.__call__ MonthOffset ----------- @@ -199,7 +194,6 @@ Methods MonthOffset.onOffset MonthOffset.is_anchored MonthOffset.is_on_offset - MonthOffset.__call__ MonthEnd -------- @@ -232,7 +226,6 @@ Methods MonthEnd.onOffset MonthEnd.is_anchored MonthEnd.is_on_offset - MonthEnd.__call__ MonthBegin ---------- @@ -265,7 +258,6 @@ Methods MonthBegin.onOffset MonthBegin.is_anchored MonthBegin.is_on_offset - MonthBegin.__call__ BusinessMonthEnd ---------------- @@ -298,7 +290,6 @@ Methods BusinessMonthEnd.onOffset BusinessMonthEnd.is_anchored BusinessMonthEnd.is_on_offset - BusinessMonthEnd.__call__ BusinessMonthBegin ------------------ @@ -331,7 +322,6 @@ Methods BusinessMonthBegin.onOffset BusinessMonthBegin.is_anchored BusinessMonthBegin.is_on_offset - BusinessMonthBegin.__call__ CustomBusinessMonthEnd ---------------------- @@ -364,7 +354,6 @@ Methods CustomBusinessMonthEnd.onOffset CustomBusinessMonthEnd.is_anchored CustomBusinessMonthEnd.is_on_offset - CustomBusinessMonthEnd.__call__ CustomBusinessMonthBegin ------------------------ @@ -397,7 +386,6 @@ Methods CustomBusinessMonthBegin.onOffset CustomBusinessMonthBegin.is_anchored CustomBusinessMonthBegin.is_on_offset - CustomBusinessMonthBegin.__call__ SemiMonthOffset --------------- @@ -430,7 +418,6 @@ Methods SemiMonthOffset.onOffset SemiMonthOffset.is_anchored SemiMonthOffset.is_on_offset - SemiMonthOffset.__call__ SemiMonthEnd ------------ @@ -463,7 +450,6 @@ Methods SemiMonthEnd.onOffset SemiMonthEnd.is_anchored SemiMonthEnd.is_on_offset - SemiMonthEnd.__call__ SemiMonthBegin -------------- @@ -496,7 +482,6 @@ Methods SemiMonthBegin.onOffset SemiMonthBegin.is_anchored SemiMonthBegin.is_on_offset - SemiMonthBegin.__call__ Week ---- @@ -529,7 +514,6 @@ Methods Week.onOffset Week.is_anchored Week.is_on_offset - Week.__call__ WeekOfMonth ----------- @@ -561,7 +545,6 @@ Methods WeekOfMonth.onOffset WeekOfMonth.is_anchored WeekOfMonth.is_on_offset - WeekOfMonth.__call__ LastWeekOfMonth --------------- @@ -593,7 +576,6 @@ Methods LastWeekOfMonth.onOffset LastWeekOfMonth.is_anchored LastWeekOfMonth.is_on_offset - LastWeekOfMonth.__call__ QuarterOffset ------------- @@ -626,7 +608,6 @@ Methods QuarterOffset.onOffset QuarterOffset.is_anchored QuarterOffset.is_on_offset - QuarterOffset.__call__ BQuarterEnd ----------- @@ -659,7 +640,6 @@ Methods BQuarterEnd.onOffset BQuarterEnd.is_anchored BQuarterEnd.is_on_offset - BQuarterEnd.__call__ BQuarterBegin ------------- @@ -692,7 +672,6 @@ Methods BQuarterBegin.onOffset BQuarterBegin.is_anchored BQuarterBegin.is_on_offset - BQuarterBegin.__call__ QuarterEnd ---------- @@ -725,7 +704,6 @@ Methods QuarterEnd.onOffset QuarterEnd.is_anchored QuarterEnd.is_on_offset - QuarterEnd.__call__ QuarterBegin ------------ @@ -758,7 +736,6 @@ Methods QuarterBegin.onOffset QuarterBegin.is_anchored QuarterBegin.is_on_offset - QuarterBegin.__call__ YearOffset ---------- @@ -791,7 +768,6 @@ Methods YearOffset.onOffset YearOffset.is_anchored YearOffset.is_on_offset - YearOffset.__call__ BYearEnd -------- @@ -824,7 +800,6 @@ Methods BYearEnd.onOffset BYearEnd.is_anchored BYearEnd.is_on_offset - BYearEnd.__call__ BYearBegin ---------- @@ -857,7 +832,6 @@ Methods BYearBegin.onOffset BYearBegin.is_anchored BYearBegin.is_on_offset - BYearBegin.__call__ YearEnd ------- @@ -890,7 +864,6 @@ Methods YearEnd.onOffset YearEnd.is_anchored YearEnd.is_on_offset - YearEnd.__call__ YearBegin --------- @@ -923,7 +896,6 @@ Methods YearBegin.onOffset YearBegin.is_anchored YearBegin.is_on_offset - YearBegin.__call__ FY5253 ------ @@ -957,7 +929,6 @@ Methods FY5253.onOffset FY5253.is_anchored FY5253.is_on_offset - FY5253.__call__ FY5253Quarter ------------- @@ -991,7 +962,6 @@ Methods FY5253Quarter.is_anchored FY5253Quarter.is_on_offset FY5253Quarter.year_has_extra_week - FY5253Quarter.__call__ Easter ------ @@ -1023,7 +993,6 @@ Methods Easter.onOffset Easter.is_anchored Easter.is_on_offset - Easter.__call__ Tick ---- @@ -1055,7 +1024,6 @@ Methods Tick.onOffset Tick.is_anchored Tick.is_on_offset - Tick.__call__ Day --- @@ -1087,7 +1055,6 @@ Methods Day.onOffset Day.is_anchored Day.is_on_offset - Day.__call__ Hour ---- @@ -1119,7 +1086,6 @@ Methods Hour.onOffset Hour.is_anchored Hour.is_on_offset - Hour.__call__ Minute ------ @@ -1151,7 +1117,6 @@ Methods Minute.onOffset Minute.is_anchored Minute.is_on_offset - Minute.__call__ Second ------ @@ -1183,7 +1148,6 @@ Methods Second.onOffset Second.is_anchored Second.is_on_offset - Second.__call__ Milli ----- @@ -1215,7 +1179,6 @@ Methods Milli.onOffset Milli.is_anchored Milli.is_on_offset - Milli.__call__ Micro ----- @@ -1247,7 +1210,6 @@ Methods Micro.onOffset Micro.is_anchored Micro.is_on_offset - Micro.__call__ Nano ---- @@ -1279,7 +1241,6 @@ Methods Nano.onOffset Nano.is_anchored Nano.is_on_offset - Nano.__call__ BDay ---- @@ -1316,7 +1277,6 @@ Methods BDay.is_on_offset BDay.rollback BDay.rollforward - BDay.__call__ BMonthEnd --------- @@ -1352,7 +1312,6 @@ Methods BMonthEnd.is_on_offset BMonthEnd.rollback BMonthEnd.rollforward - BMonthEnd.__call__ BMonthBegin ----------- @@ -1388,7 +1347,6 @@ Methods BMonthBegin.is_on_offset BMonthBegin.rollback BMonthBegin.rollforward - BMonthBegin.__call__ CBMonthEnd ---------- @@ -1428,7 +1386,6 @@ Methods CBMonthEnd.is_on_offset CBMonthEnd.rollback CBMonthEnd.rollforward - CBMonthEnd.__call__ CBMonthBegin ------------ @@ -1468,7 +1425,6 @@ Methods CBMonthBegin.is_on_offset CBMonthBegin.rollback CBMonthBegin.rollforward - CBMonthBegin.__call__ CDay ---- @@ -1505,7 +1461,6 @@ Methods CDay.is_on_offset CDay.rollback CDay.rollforward - CDay.__call__ .. _api.frequencies: