diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 9af321be5..4adb8a835 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -87,10 +87,15 @@ class Worksheet(_WorkbookChild): @freeze_panes.setter def freeze_panes(self, topLeftCell: str | Cell | None = ...) -> None: ... def cell(self, row: int, column: int, value: str | None = None) -> Cell: ... + # An int is necessarily a row selection @overload - def __getitem__(self, key: int | slice) -> tuple[Cell, ...]: ... + def __getitem__(self, key: int) -> tuple[Cell, ...]: ... + # A slice is necessarily a row or rows, even if targetting a single cell @overload - def __getitem__(self, key: str) -> Any: ... # AnyOf[Cell, tuple[Cell, ...]] + def __getitem__(self, key: slice) -> tuple[Any, ...]: ... # tuple[AnyOf[Cell, tuple[Cell, ...]]] + # A str could be an individual cell, row, column or full range + @overload + def __getitem__(self, key: str) -> Any: ... # AnyOf[Cell, tuple[Cell, ...], tuple[tuple[Cell, ...], ...]] def __setitem__(self, key: str, value: str) -> None: ... def __iter__(self) -> Iterator[tuple[Cell, ...]]: ... def __delitem__(self, key: str) -> None: ...