Skip to content

Commit 06e35cd

Browse files
committed
ENH: Refine boolean checks in Index class for level validation
1 parent dd0960a commit 06e35cd

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

pandas/core/indexes/base.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,20 +2175,29 @@ def _validate_index_level(self, level) -> None:
21752175
f"Requested level ({level}) does not match index name ({self.name})"
21762176
)
21772177

2178-
if isinstance(level, bool) or isinstance(self.name, bool):
2178+
if isinstance(level, bool) and isinstance(self.name, bool):
21792179
if level == self.name:
21802180
return
21812181
raise KeyError(
21822182
f"Requested level ({level}) does not match index name ({self.name})"
21832183
)
21842184

21852185
if lib.is_integer(level):
2186-
if isinstance(self.name, int) and level == self.name:
2186+
if (
2187+
isinstance(self.name, int)
2188+
and not isinstance(self.name, bool)
2189+
and level == self.name
2190+
):
21872191
return
21882192

21892193
self._validate_positional_level(level)
21902194
return
21912195

2196+
if isinstance(self.name, bool):
2197+
raise KeyError(
2198+
f"Requested level ({level}) does not match index name ({self.name})"
2199+
)
2200+
21922201
if level == self.name:
21932202
return
21942203

0 commit comments

Comments
 (0)