diff --git a/stdlib/array.pyi b/stdlib/array.pyi index 6f4444b10..f49eb2c91 100644 --- a/stdlib/array.pyi +++ b/stdlib/array.pyi @@ -1,6 +1,6 @@ import sys from typing import Any, BinaryIO, Generic, Iterable, MutableSequence, TypeVar, Union, overload -from typing_extensions import Literal +from typing_extensions import Literal, SupportsIndex _IntTypeCode = Literal["b", "B", "h", "H", "i", "I", "l", "L", "q", "Q"] _FloatTypeCode = Literal["f", "d"] @@ -48,14 +48,14 @@ class array(MutableSequence[_T], Generic[_T]): def tostring(self) -> bytes: ... def __len__(self) -> int: ... @overload - def __getitem__(self, __i: int) -> _T: ... + def __getitem__(self, __i: SupportsIndex) -> _T: ... @overload def __getitem__(self, __s: slice) -> array[_T]: ... @overload # type: ignore # Overrides MutableSequence - def __setitem__(self, __i: int, __o: _T) -> None: ... + def __setitem__(self, __i: SupportsIndex, __o: _T) -> None: ... @overload def __setitem__(self, __s: slice, __o: array[_T]) -> None: ... - def __delitem__(self, __i: int | slice) -> None: ... + def __delitem__(self, __i: SupportsIndex | slice) -> None: ... def __add__(self, __x: array[_T]) -> array[_T]: ... def __ge__(self, __other: array[_T]) -> bool: ... def __gt__(self, __other: array[_T]) -> bool: ... diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 2dbeaa1d8..4d2055feb 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -424,7 +424,7 @@ class str(Sequence[str]): def __contains__(self, __o: str) -> bool: ... # type: ignore[override] def __eq__(self, __x: object) -> bool: ... def __ge__(self, __x: str) -> bool: ... - def __getitem__(self, __i: int | slice) -> str: ... + def __getitem__(self, __i: SupportsIndex | slice) -> str: ... def __gt__(self, __x: str) -> bool: ... def __hash__(self) -> int: ... def __iter__(self) -> Iterator[str]: ... @@ -740,7 +740,7 @@ class tuple(Sequence[_T_co], Generic[_T_co]): def __len__(self) -> int: ... def __contains__(self, __x: object) -> bool: ... @overload - def __getitem__(self, __x: int) -> _T_co: ... + def __getitem__(self, __x: SupportsIndex) -> _T_co: ... @overload def __getitem__(self, __x: slice) -> Tuple[_T_co, ...]: ... def __iter__(self) -> Iterator[_T_co]: ... diff --git a/stdlib/collections/__init__.pyi b/stdlib/collections/__init__.pyi index 287be034d..7ad74d915 100644 --- a/stdlib/collections/__init__.pyi +++ b/stdlib/collections/__init__.pyi @@ -2,7 +2,7 @@ import sys from _collections_abc import dict_items, dict_keys, dict_values from _typeshed import Self from typing import Any, Dict, Generic, NoReturn, Tuple, Type, TypeVar, overload -from typing_extensions import final +from typing_extensions import SupportsIndex, final if sys.version_info >= (3, 9): from types import GenericAlias @@ -58,14 +58,14 @@ class UserList(MutableSequence[_T]): def __contains__(self, item: object) -> bool: ... def __len__(self) -> int: ... @overload - def __getitem__(self, i: int) -> _T: ... + def __getitem__(self, i: SupportsIndex) -> _T: ... @overload def __getitem__(self: Self, i: slice) -> Self: ... @overload - def __setitem__(self, i: int, o: _T) -> None: ... + def __setitem__(self, i: SupportsIndex, o: _T) -> None: ... @overload def __setitem__(self, i: slice, o: Iterable[_T]) -> None: ... - def __delitem__(self, i: int | slice) -> None: ... + def __delitem__(self, i: SupportsIndex | slice) -> None: ... def __add__(self: _S, other: Iterable[_T]) -> _S: ... def __iadd__(self: _S, other: Iterable[_T]) -> _S: ... def __mul__(self: _S, n: int) -> _S: ... @@ -98,7 +98,7 @@ class UserString(Sequence[str]): def __contains__(self, char: object) -> bool: ... def __len__(self) -> int: ... # It should return a str to implement Sequence correctly, but it doesn't. - def __getitem__(self: _UserStringT, i: int | slice) -> _UserStringT: ... # type: ignore[override] + def __getitem__(self: _UserStringT, i: SupportsIndex | slice) -> _UserStringT: ... # type: ignore[override] def __iter__(self: _UserStringT) -> Iterator[_UserStringT]: ... # type: ignore[override] def __reversed__(self: _UserStringT) -> Iterator[_UserStringT]: ... # type: ignore[override] def __add__(self: _UserStringT, other: object) -> _UserStringT: ... @@ -187,15 +187,15 @@ class deque(MutableSequence[_T], Generic[_T]): # These methods of deque don't really take slices, but we need to # define them as taking a slice to satisfy MutableSequence. @overload - def __getitem__(self, __index: int) -> _T: ... + def __getitem__(self, __index: SupportsIndex) -> _T: ... @overload def __getitem__(self, __s: slice) -> MutableSequence[_T]: ... @overload - def __setitem__(self, __i: int, __x: _T) -> None: ... + def __setitem__(self, __i: SupportsIndex, __x: _T) -> None: ... @overload def __setitem__(self, __s: slice, __o: Iterable[_T]) -> None: ... @overload - def __delitem__(self, __i: int) -> None: ... + def __delitem__(self, __i: SupportsIndex) -> None: ... @overload def __delitem__(self, __s: slice) -> None: ... def __contains__(self, __o: object) -> bool: ... diff --git a/stdlib/concurrent/futures/_base.pyi b/stdlib/concurrent/futures/_base.pyi index fd7333420..c1a44c997 100644 --- a/stdlib/concurrent/futures/_base.pyi +++ b/stdlib/concurrent/futures/_base.pyi @@ -5,6 +5,7 @@ from abc import abstractmethod from collections.abc import Container, Iterable, Iterator, Sequence from logging import Logger from typing import Any, Callable, Generic, Protocol, Set, TypeVar, overload +from typing_extensions import SupportsIndex if sys.version_info >= (3, 9): from types import GenericAlias @@ -81,7 +82,7 @@ class DoneAndNotDoneFutures(Sequence[Set[Future[_T]]]): def __new__(_cls, done: set[Future[_T]], not_done: set[Future[_T]]) -> DoneAndNotDoneFutures[_T]: ... def __len__(self) -> int: ... @overload - def __getitem__(self, i: int) -> set[Future[_T]]: ... + def __getitem__(self, i: SupportsIndex) -> set[Future[_T]]: ... @overload def __getitem__(self, s: slice) -> DoneAndNotDoneFutures[_T]: ... diff --git a/stdlib/operator.pyi b/stdlib/operator.pyi index bb8e23733..45953d429 100644 --- a/stdlib/operator.pyi +++ b/stdlib/operator.pyi @@ -11,7 +11,7 @@ from typing import ( TypeVar, overload, ) -from typing_extensions import final +from typing_extensions import SupportsIndex, final _T = TypeVar("_T") _T_co = TypeVar("_T_co", covariant=True) @@ -79,38 +79,38 @@ def contains(__a: Container[Any], __b: Any) -> bool: ... def __contains__(a: Container[Any], b: Any) -> bool: ... def countOf(__a: Container[Any], __b: Any) -> int: ... @overload -def delitem(__a: MutableSequence[Any], __b: int) -> None: ... +def delitem(__a: MutableSequence[Any], __b: SupportsIndex) -> None: ... @overload def delitem(__a: MutableSequence[Any], __b: slice) -> None: ... @overload def delitem(__a: MutableMapping[_K, Any], __b: _K) -> None: ... @overload -def __delitem__(a: MutableSequence[Any], b: int) -> None: ... +def __delitem__(a: MutableSequence[Any], b: SupportsIndex) -> None: ... @overload def __delitem__(a: MutableSequence[Any], b: slice) -> None: ... @overload def __delitem__(a: MutableMapping[_K, Any], b: _K) -> None: ... @overload -def getitem(__a: Sequence[_T], __b: int) -> _T: ... +def getitem(__a: Sequence[_T], __b: SupportsIndex) -> _T: ... @overload def getitem(__a: Sequence[_T], __b: slice) -> Sequence[_T]: ... @overload def getitem(__a: Mapping[_K, _V], __b: _K) -> _V: ... @overload -def __getitem__(a: Sequence[_T], b: int) -> _T: ... +def __getitem__(a: Sequence[_T], b: SupportsIndex) -> _T: ... @overload def __getitem__(a: Sequence[_T], b: slice) -> Sequence[_T]: ... @overload def __getitem__(a: Mapping[_K, _V], b: _K) -> _V: ... def indexOf(__a: Sequence[_T], __b: _T) -> int: ... @overload -def setitem(__a: MutableSequence[_T], __b: int, __c: _T) -> None: ... +def setitem(__a: MutableSequence[_T], __b: SupportsIndex, __c: _T) -> None: ... @overload def setitem(__a: MutableSequence[_T], __b: slice, __c: Sequence[_T]) -> None: ... @overload def setitem(__a: MutableMapping[_K, _V], __b: _K, __c: _V) -> None: ... @overload -def __setitem__(a: MutableSequence[_T], b: int, c: _T) -> None: ... +def __setitem__(a: MutableSequence[_T], b: SupportsIndex, c: _T) -> None: ... @overload def __setitem__(a: MutableSequence[_T], b: slice, c: Sequence[_T]) -> None: ... @overload diff --git a/stdlib/tracemalloc.pyi b/stdlib/tracemalloc.pyi index ca4d5901b..4666bd156 100644 --- a/stdlib/tracemalloc.pyi +++ b/stdlib/tracemalloc.pyi @@ -1,6 +1,7 @@ import sys from _tracemalloc import * from typing import Optional, Sequence, Tuple, Union, overload +from typing_extensions import SupportsIndex def get_object_traceback(obj: object) -> Traceback | None: ... def take_snapshot() -> Snapshot: ... @@ -63,7 +64,7 @@ class Traceback(Sequence[Frame]): else: def format(self, limit: int | None = ...) -> list[str]: ... @overload - def __getitem__(self, i: int) -> Frame: ... + def __getitem__(self, i: SupportsIndex) -> Frame: ... @overload def __getitem__(self, s: slice) -> Sequence[Frame]: ... def __len__(self) -> int: ... diff --git a/stdlib/xml/etree/ElementTree.pyi b/stdlib/xml/etree/ElementTree.pyi index 03a20dcad..e63253d8a 100644 --- a/stdlib/xml/etree/ElementTree.pyi +++ b/stdlib/xml/etree/ElementTree.pyi @@ -16,7 +16,7 @@ from typing import ( Union, overload, ) -from typing_extensions import Literal +from typing_extensions import Literal, SupportsIndex _T = TypeVar("_T") _File = Union[StrOrBytesPath, FileDescriptor, IO[Any]] @@ -87,14 +87,14 @@ class Element(MutableSequence[Element]): def makeelement(self, __tag: str, __attrib: dict[str, str]) -> Element: ... def remove(self, __subelement: Element) -> None: ... def set(self, __key: str, __value: str) -> None: ... - def __delitem__(self, i: int | slice) -> None: ... + def __delitem__(self, i: SupportsIndex | slice) -> None: ... @overload - def __getitem__(self, i: int) -> Element: ... + def __getitem__(self, i: SupportsIndex) -> Element: ... @overload def __getitem__(self, s: slice) -> MutableSequence[Element]: ... def __len__(self) -> int: ... @overload - def __setitem__(self, i: int, o: Element) -> None: ... + def __setitem__(self, i: SupportsIndex, o: Element) -> None: ... @overload def __setitem__(self, s: slice, o: Iterable[Element]) -> None: ... if sys.version_info < (3, 9): diff --git a/stubs/MarkupSafe/markupsafe/__init__.pyi b/stubs/MarkupSafe/markupsafe/__init__.pyi index b265433ed..46f634290 100644 --- a/stubs/MarkupSafe/markupsafe/__init__.pyi +++ b/stubs/MarkupSafe/markupsafe/__init__.pyi @@ -27,7 +27,7 @@ class Markup(text_type): def format(self, *args: Any, **kwargs: Any) -> Markup: ... def __html_format__(self, format_spec: text_type) -> Markup: ... def __getslice__(self, start: int, stop: int) -> Markup: ... - def __getitem__(self, i: int | slice) -> Markup: ... + def __getitem__(self, i: SupportsIndex | slice) -> Markup: ... def capitalize(self) -> Markup: ... def title(self) -> Markup: ... def lower(self) -> Markup: ... diff --git a/stubs/protobuf/google/protobuf/internal/containers.pyi b/stubs/protobuf/google/protobuf/internal/containers.pyi index 5e54051b6..cef517ec2 100644 --- a/stubs/protobuf/google/protobuf/internal/containers.pyi +++ b/stubs/protobuf/google/protobuf/internal/containers.pyi @@ -13,6 +13,7 @@ from typing import ( Union, overload, ) +from typing_extensions import SupportsIndex from google.protobuf.descriptor import Descriptor from google.protobuf.internal.message_listener import MessageListener @@ -33,7 +34,7 @@ class BaseContainer(Sequence[_T]): def __repr__(self) -> str: ... def sort(self, *, key: Optional[Callable[[_T], Any]] = ..., reverse: bool = ...) -> None: ... @overload - def __getitem__(self, key: int) -> _T: ... + def __getitem__(self, key: SupportsIndex) -> _T: ... @overload def __getitem__(self, key: slice) -> List[_T]: ...