Skip to content

Commit 16ccbca

Browse files
authored
REF: remove special-casing for IntervalDtype in Index._raise_if_missing (#54557)
1 parent 31da913 commit 16ccbca

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

pandas/core/indexes/base.py

-12
Original file line numberDiff line numberDiff line change
@@ -6165,19 +6165,7 @@ def _raise_if_missing(self, key, indexer, axis_name: str_t) -> None:
61656165
nmissing = missing_mask.sum()
61666166

61676167
if nmissing:
6168-
# TODO: remove special-case; this is just to keep exception
6169-
# message tests from raising while debugging
6170-
use_interval_msg = isinstance(self.dtype, IntervalDtype) or (
6171-
isinstance(self.dtype, CategoricalDtype)
6172-
# "Index" has no attribute "categories" [attr-defined]
6173-
and isinstance(
6174-
self.categories.dtype, IntervalDtype # type: ignore[attr-defined]
6175-
)
6176-
)
6177-
61786168
if nmissing == len(indexer):
6179-
if use_interval_msg:
6180-
key = list(key)
61816169
raise KeyError(f"None of [{key}] are in the [{axis_name}]")
61826170

61836171
not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique())

pandas/tests/indexing/interval/test_interval.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,11 @@ def test_loc_getitem_frame(self):
106106
expected = df.take([4, 5, 4, 5])
107107
tm.assert_frame_equal(result, expected)
108108

109-
with pytest.raises(KeyError, match=r"None of \[\[10\]\] are"):
109+
msg = (
110+
r"None of \[Index\(\[10\], dtype='object', name='B'\)\] "
111+
r"are in the \[index\]"
112+
)
113+
with pytest.raises(KeyError, match=msg):
110114
df.loc[[10]]
111115

112116
# partial missing

pandas/tests/indexing/interval/test_interval_new.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,10 @@ def test_loc_with_overlap(self, indexer_sl):
149149
with pytest.raises(KeyError, match=re.escape("Interval(3, 5, closed='right')")):
150150
indexer_sl(ser)[Interval(3, 5)]
151151

152-
msg = r"None of \[\[Interval\(3, 5, closed='right'\)\]\]"
152+
msg = (
153+
r"None of \[IntervalIndex\(\[\(3, 5\]\], "
154+
r"dtype='interval\[int64, right\]'\)\] are in the \[index\]"
155+
)
153156
with pytest.raises(KeyError, match=msg):
154157
indexer_sl(ser)[[Interval(3, 5)]]
155158

0 commit comments

Comments
 (0)