Skip to content
1 change: 0 additions & 1 deletion pandas-stubs/core/indexes/base.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,6 @@ class Index(IndexOpsMixin[S1], ElementOpsMixin[S1]):
@property
def nlevels(self) -> int: ...
def get_level_values(self, level: int | _str) -> Index: ...
def droplevel(self, level: Level | Sequence[Level] = 0) -> Self: ...
@property
def is_monotonic_increasing(self) -> bool: ...
@property
Expand Down
2 changes: 1 addition & 1 deletion pandas-stubs/core/indexes/multi.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ class MultiIndex(Index):
@property
def is_monotonic_decreasing(self) -> bool: ...
def dropna(self, how: AnyAll = "any") -> Self: ...
def droplevel(self, level: Level | Sequence[Level] = 0) -> MultiIndex | Index: ... # type: ignore[override] # pyrefly: ignore[bad-override]
def droplevel(self, level: Level | Sequence[Level] = 0) -> MultiIndex | Index: ...
def get_level_values(self, level: str | int) -> Index: ...
@overload # type: ignore[override]
def unique( # pyrefly: ignore[bad-override]
Expand Down
5 changes: 3 additions & 2 deletions tests/indexes/test_indexes.py
Original file line number Diff line number Diff line change
Expand Up @@ -1608,15 +1608,16 @@ def test_index_set_names() -> None:


def test_index_droplevel() -> None:
idx = pd.Index([1, 2])
check(assert_type(idx.droplevel([]), "pd.Index[int]"), pd.Index, np.integer)
Comment thread
tinezivic marked this conversation as resolved.
mi = pd.MultiIndex.from_arrays([[1, 2, 3], [4, 5, 6]], names=["elk", "owl"])
check(assert_type(mi.droplevel([]), pd.MultiIndex | pd.Index), pd.MultiIndex)
check(assert_type(mi.droplevel([0]), pd.MultiIndex | pd.Index), pd.Index)
check(assert_type(mi.droplevel((0,)), pd.MultiIndex | pd.Index), pd.Index)
check(assert_type(mi.droplevel(["elk"]), pd.MultiIndex | pd.Index), pd.Index)
check(assert_type(mi.droplevel(("elk",)), pd.MultiIndex | pd.Index), pd.Index)
check(assert_type(mi.droplevel(0), pd.MultiIndex | pd.Index), pd.Index)
if TYPE_CHECKING_INVALID_USAGE:
idx = pd.Index([1, 2])
idx.droplevel(0) # type: ignore[attr-defined] # pyright: ignore[reportAttributeAccessIssue, reportUnknownMemberType]


def test_index_setitem() -> None:
Expand Down
Loading