Skip to content

Commit b62c324

Browse files
jschendeljreback
authored andcommitted
DEPR: deprecate IntervalIndex.itemsize and remove IntervalArray.itemsize (#22149)
1 parent 59c3132 commit b62c324

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

pandas/core/arrays/interval.py

-4
Original file line numberDiff line numberDiff line change
@@ -688,10 +688,6 @@ def size(self):
688688
def shape(self):
689689
return self.left.shape
690690

691-
@property
692-
def itemsize(self):
693-
return self.left.itemsize + self.right.itemsize
694-
695691
def take(self, indices, allow_fill=False, fill_value=None, axis=None,
696692
**kwargs):
697693
"""

pandas/core/indexes/interval.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,14 @@ def shape(self):
369369

370370
@property
371371
def itemsize(self):
372-
# Avoid materializing ndarray[Interval]
373-
return self._data.itemsize
372+
msg = ('IntervalIndex.itemsize is deprecated and will be removed in '
373+
'a future version')
374+
warnings.warn(msg, FutureWarning, stacklevel=2)
375+
376+
# supress the warning from the underlying left/right itemsize
377+
with warnings.catch_warnings():
378+
warnings.simplefilter('ignore')
379+
return self.left.itemsize + self.right.itemsize
374380

375381
def __len__(self):
376382
return len(self.left)

pandas/tests/indexes/interval/test_interval.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -989,9 +989,11 @@ def test_itemsize(self):
989989
# GH 19209
990990
left = np.arange(0, 4, dtype='i8')
991991
right = np.arange(1, 5, dtype='i8')
992-
993-
result = IntervalIndex.from_arrays(left, right).itemsize
994992
expected = 16 # 8 * 2
993+
994+
with tm.assert_produces_warning(FutureWarning, check_stacklevel=False):
995+
result = IntervalIndex.from_arrays(left, right).itemsize
996+
995997
assert result == expected
996998

997999
@pytest.mark.parametrize('new_closed', [

0 commit comments

Comments
 (0)