From 7b555c2fb175364b924d8185cf3527ae8f809131 Mon Sep 17 00:00:00 2001 From: Daniil Fajnberg Date: Thu, 11 May 2023 11:04:49 +0200 Subject: [PATCH 1/3] Make `slice` generic in terms of its `start`, `stop`, and `step` --- stdlib/builtins.pyi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 6bc9c7ec8b3a..f2e9e22f1799 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -903,17 +903,17 @@ class bool(int): def __getnewargs__(self) -> tuple[int]: ... @final -class slice: +class slice(Generic[_T1, _T2, _T3]): @property - def start(self) -> Any: ... + def start(self) -> _T1: ... @property - def step(self) -> Any: ... + def step(self) -> _T3: ... @property - def stop(self) -> Any: ... + def stop(self) -> _T2: ... @overload - def __init__(self, __stop: Any) -> None: ... + def __init__(self, __stop: _T2) -> None: ... @overload - def __init__(self, __start: Any, __stop: Any, __step: Any = ...) -> None: ... + def __init__(self, __start: _T1, __stop: _T2, __step: _T3 = ...) -> None: ... __hash__: ClassVar[None] # type: ignore[assignment] def indices(self, __len: SupportsIndex) -> tuple[int, int, int]: ... From 27a40eef9ce190b04ffa31e8c22ec7a93b22eff7 Mon Sep 17 00:00:00 2001 From: Daniil Fajnberg Date: Fri, 12 May 2023 12:11:30 +0200 Subject: [PATCH 2/3] Specify `slice` type arguments everywhere --- stdlib/_ctypes.pyi | 6 ++--- stdlib/_operator.pyi | 6 ++--- stdlib/array.pyi | 6 ++--- stdlib/builtins.pyi | 26 +++++++++---------- stdlib/collections/__init__.pyi | 8 +++--- stdlib/lib2to3/btm_matcher.pyi | 3 ++- stdlib/lib2to3/pytree.pyi | 3 ++- stdlib/logging/config.pyi | 4 +-- stdlib/mmap.pyi | 8 +++--- stdlib/multiprocessing/managers.pyi | 6 ++--- stdlib/sqlite3/dbapi2.pyi | 6 ++--- stdlib/sre_parse.pyi | 6 ++--- stdlib/tracemalloc.pyi | 2 +- stdlib/typing.pyi | 8 +++--- stdlib/xml/etree/ElementTree.pyi | 6 ++--- stubs/JACK-Client/jack/__init__.pyi | 4 +-- stubs/Markdown/markdown/util.pyi | 2 +- stubs/SQLAlchemy/sqlalchemy/cresultproxy.pyi | 2 +- stubs/cffi/_cffi_backend.pyi | 4 +-- stubs/docutils/docutils/nodes.pyi | 6 ++--- stubs/netaddr/netaddr/eui/__init__.pyi | 6 ++--- stubs/netaddr/netaddr/ip/__init__.pyi | 6 ++--- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 2 +- .../google/protobuf/internal/containers.pyi | 8 +++--- .../PyInstaller/building/datastruct.pyi | 2 +- stubs/python-xlib/Xlib/protocol/display.pyi | 4 +-- stubs/tensorflow/tensorflow/__init__.pyi | 4 +-- 27 files changed, 78 insertions(+), 76 deletions(-) diff --git a/stdlib/_ctypes.pyi b/stdlib/_ctypes.pyi index e2f8fa745f27..5bc8200831c1 100644 --- a/stdlib/_ctypes.pyi +++ b/stdlib/_ctypes.pyi @@ -83,7 +83,7 @@ class _Pointer(Generic[_CT], _PointerLike, _CData): @overload def __getitem__(self, __key: int) -> Any: ... @overload - def __getitem__(self, __key: slice) -> list[Any]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> list[Any]: ... def __setitem__(self, __key: int, __value: Any) -> None: ... def POINTER(type: type[_CT]) -> type[_Pointer[_CT]]: ... @@ -168,11 +168,11 @@ class Array(Generic[_CT], _CData): @overload def __getitem__(self, __key: int) -> Any: ... @overload - def __getitem__(self, __key: slice) -> list[Any]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> list[Any]: ... @overload def __setitem__(self, __key: int, __value: Any) -> None: ... @overload - def __setitem__(self, __key: slice, __value: Iterable[Any]) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: Iterable[Any]) -> None: ... def __iter__(self) -> Iterator[Any]: ... # Can't inherit from Sized because the metaclass conflict between # Sized and _CData prevents using _CDataMeta. diff --git a/stdlib/_operator.pyi b/stdlib/_operator.pyi index e7d1a98c4027..6dad8a6d961c 100644 --- a/stdlib/_operator.pyi +++ b/stdlib/_operator.pyi @@ -74,18 +74,18 @@ def countOf(__a: Iterable[object], __b: object) -> int: ... @overload def delitem(__a: MutableSequence[Any], __b: SupportsIndex) -> None: ... @overload -def delitem(__a: MutableSequence[Any], __b: slice) -> None: ... +def delitem(__a: MutableSequence[Any], __b: slice[Any, Any, Any]) -> None: ... @overload def delitem(__a: MutableMapping[_K, Any], __b: _K) -> None: ... @overload -def getitem(__a: Sequence[_T], __b: slice) -> Sequence[_T]: ... +def getitem(__a: Sequence[_T], __b: slice[Any, Any, Any]) -> Sequence[_T]: ... @overload def getitem(__a: SupportsGetItem[_K, _V], __b: _K) -> _V: ... def indexOf(__a: Iterable[_T], __b: _T) -> int: ... @overload def setitem(__a: MutableSequence[_T], __b: SupportsIndex, __c: _T) -> None: ... @overload -def setitem(__a: MutableSequence[_T], __b: slice, __c: Sequence[_T]) -> None: ... +def setitem(__a: MutableSequence[_T], __b: slice[Any, Any, Any], __c: Sequence[_T]) -> None: ... @overload def setitem(__a: MutableMapping[_K, _V], __b: _K, __c: _V) -> None: ... def length_hint(__obj: object, __default: int = 0) -> int: ... diff --git a/stdlib/array.pyi b/stdlib/array.pyi index 38a815b584cd..b5dfd8031217 100644 --- a/stdlib/array.pyi +++ b/stdlib/array.pyi @@ -63,12 +63,12 @@ class array(MutableSequence[_T], Generic[_T]): @overload def __getitem__(self, __key: SupportsIndex) -> _T: ... @overload - def __getitem__(self, __key: slice) -> array[_T]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> array[_T]: ... @overload # type: ignore[override] def __setitem__(self, __key: SupportsIndex, __value: _T) -> None: ... @overload - def __setitem__(self, __key: slice, __value: array[_T]) -> None: ... - def __delitem__(self, __key: SupportsIndex | slice) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: array[_T]) -> None: ... + def __delitem__(self, __key: SupportsIndex | slice[Any, Any, Any]) -> None: ... def __add__(self, __value: array[_T]) -> array[_T]: ... def __ge__(self, __value: array[_T]) -> bool: ... def __gt__(self, __value: array[_T]) -> bool: ... diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index f2e9e22f1799..dd4f08979047 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -568,7 +568,7 @@ class str(Sequence[str]): def __contains__(self, __key: str) -> bool: ... # type: ignore[override] def __eq__(self, __value: object) -> bool: ... def __ge__(self, __value: str) -> bool: ... - def __getitem__(self, __key: SupportsIndex | slice) -> str: ... + def __getitem__(self, __key: SupportsIndex | slice[Any, Any, Any]) -> str: ... def __gt__(self, __value: str) -> bool: ... @overload def __iter__(self: LiteralString) -> Iterator[LiteralString]: ... @@ -678,7 +678,7 @@ class bytes(ByteString): @overload def __getitem__(self, __key: SupportsIndex) -> int: ... @overload - def __getitem__(self, __key: slice) -> bytes: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> bytes: ... def __add__(self, __value: ReadableBuffer) -> bytes: ... def __mul__(self, __value: SupportsIndex) -> bytes: ... def __rmul__(self, __value: SupportsIndex) -> bytes: ... @@ -788,12 +788,12 @@ class bytearray(MutableSequence[int], ByteString): @overload def __getitem__(self, __key: SupportsIndex) -> int: ... @overload - def __getitem__(self, __key: slice) -> bytearray: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> bytearray: ... @overload def __setitem__(self, __key: SupportsIndex, __value: SupportsIndex) -> None: ... @overload - def __setitem__(self, __key: slice, __value: Iterable[SupportsIndex] | bytes) -> None: ... - def __delitem__(self, __key: SupportsIndex | slice) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: Iterable[SupportsIndex] | bytes) -> None: ... + def __delitem__(self, __key: SupportsIndex | slice[Any, Any, Any]) -> None: ... def __add__(self, __value: ReadableBuffer) -> bytearray: ... # The superclass wants us to accept Iterable[int], but that fails at runtime. def __iadd__(self, __value: ReadableBuffer) -> Self: ... # type: ignore[override] @@ -846,12 +846,12 @@ class memoryview(Sequence[int]): @overload def __getitem__(self, __key: SupportsIndex) -> int: ... @overload - def __getitem__(self, __key: slice) -> memoryview: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> memoryview: ... def __contains__(self, __x: object) -> bool: ... def __iter__(self) -> Iterator[int]: ... def __len__(self) -> int: ... @overload - def __setitem__(self, __key: slice, __value: ReadableBuffer) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: ReadableBuffer) -> None: ... @overload def __setitem__(self, __key: SupportsIndex, __value: SupportsIndex) -> None: ... if sys.version_info >= (3, 10): @@ -913,7 +913,7 @@ class slice(Generic[_T1, _T2, _T3]): @overload def __init__(self, __stop: _T2) -> None: ... @overload - def __init__(self, __start: _T1, __stop: _T2, __step: _T3 = ...) -> None: ... + def __init__(self, __start: _T1, __stop: _T2, __step: _T3 = ...) -> None: ... # pyright: ignore[reportInvalidTypeVarUse] __hash__: ClassVar[None] # type: ignore[assignment] def indices(self, __len: SupportsIndex) -> tuple[int, int, int]: ... @@ -924,7 +924,7 @@ class tuple(Sequence[_T_co], Generic[_T_co]): @overload def __getitem__(self, __key: SupportsIndex) -> _T_co: ... @overload - def __getitem__(self, __key: slice) -> tuple[_T_co, ...]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> tuple[_T_co, ...]: ... def __iter__(self) -> Iterator[_T_co]: ... def __lt__(self, __value: tuple[_T_co, ...]) -> bool: ... def __le__(self, __value: tuple[_T_co, ...]) -> bool: ... @@ -995,12 +995,12 @@ class list(MutableSequence[_T], Generic[_T]): @overload def __getitem__(self, __i: SupportsIndex) -> _T: ... @overload - def __getitem__(self, __s: slice) -> list[_T]: ... + def __getitem__(self, __s: slice[Any, Any, Any]) -> list[_T]: ... @overload def __setitem__(self, __key: SupportsIndex, __value: _T) -> None: ... @overload - def __setitem__(self, __key: slice, __value: Iterable[_T]) -> None: ... - def __delitem__(self, __key: SupportsIndex | slice) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: Iterable[_T]) -> None: ... + def __delitem__(self, __key: SupportsIndex | slice[Any, Any, Any]) -> None: ... # Overloading looks unnecessary, but is needed to work around complex mypy problems @overload def __add__(self, __value: list[_T]) -> list[_T]: ... @@ -1174,7 +1174,7 @@ class range(Sequence[int]): @overload def __getitem__(self, __key: SupportsIndex) -> int: ... @overload - def __getitem__(self, __key: slice) -> range: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> range: ... def __reversed__(self) -> Iterator[int]: ... class property: diff --git a/stdlib/collections/__init__.pyi b/stdlib/collections/__init__.pyi index d5ca17c749eb..6c4b69d76d28 100644 --- a/stdlib/collections/__init__.pyi +++ b/stdlib/collections/__init__.pyi @@ -107,12 +107,12 @@ class UserList(MutableSequence[_T]): @overload def __getitem__(self, i: SupportsIndex) -> _T: ... @overload - def __getitem__(self, i: slice) -> Self: ... + def __getitem__(self, i: slice[Any, Any, Any]) -> Self: ... @overload def __setitem__(self, i: SupportsIndex, item: _T) -> None: ... @overload - def __setitem__(self, i: slice, item: Iterable[_T]) -> None: ... - def __delitem__(self, i: SupportsIndex | slice) -> None: ... + def __setitem__(self, i: slice[Any, Any, Any], item: Iterable[_T]) -> None: ... + def __delitem__(self, i: SupportsIndex | slice[Any, Any, Any]) -> None: ... def __add__(self, other: Iterable[_T]) -> Self: ... def __radd__(self, other: Iterable[_T]) -> Self: ... def __iadd__(self, other: Iterable[_T]) -> Self: ... @@ -149,7 +149,7 @@ class UserString(Sequence[UserString]): def __eq__(self, string: object) -> bool: ... def __contains__(self, char: object) -> bool: ... def __len__(self) -> int: ... - def __getitem__(self, index: SupportsIndex | slice) -> Self: ... + def __getitem__(self, index: SupportsIndex | slice[Any, Any, Any]) -> Self: ... def __iter__(self) -> Iterator[Self]: ... def __reversed__(self) -> Iterator[Self]: ... def __add__(self, other: object) -> Self: ... diff --git a/stdlib/lib2to3/btm_matcher.pyi b/stdlib/lib2to3/btm_matcher.pyi index 4c87b664eb20..db9abc04e2de 100644 --- a/stdlib/lib2to3/btm_matcher.pyi +++ b/stdlib/lib2to3/btm_matcher.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsGetItem from collections import defaultdict from collections.abc import Iterable +from typing import Any from .fixer_base import BaseFix from .pytree import Leaf, Node @@ -21,7 +22,7 @@ class BottomMatcher: logger: Incomplete def __init__(self) -> None: ... def add_fixer(self, fixer: BaseFix) -> None: ... - def add(self, pattern: SupportsGetItem[int | slice, Incomplete] | None, start: BMNode) -> list[BMNode]: ... + def add(self, pattern: SupportsGetItem[int | slice[Any, Any, Any], Incomplete] | None, start: BMNode) -> list[BMNode]: ... def run(self, leaves: Iterable[Leaf]) -> defaultdict[BaseFix, list[Node | Leaf]]: ... def print_ac(self) -> None: ... diff --git a/stdlib/lib2to3/pytree.pyi b/stdlib/lib2to3/pytree.pyi index d14446f38565..080bd82edc54 100644 --- a/stdlib/lib2to3/pytree.pyi +++ b/stdlib/lib2to3/pytree.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, SupportsGetItem, SupportsLenAndGetItem, Unused from abc import abstractmethod from collections.abc import Iterable, Iterator, MutableSequence +from typing import Any from typing_extensions import Final, Self, TypeAlias from .fixer_base import BaseFix @@ -112,5 +113,5 @@ class NegatedPattern(BasePattern): def __init__(self, content: str | None = None) -> None: ... def generate_matches( - patterns: SupportsGetItem[int | slice, BasePattern] | None, nodes: SupportsGetItem[int | slice, _NL] + patterns: SupportsGetItem[int | slice[Any, Any, Any], BasePattern] | None, nodes: SupportsGetItem[int | slice[Any, Any, Any], _NL] ) -> Iterator[tuple[int, _Results]]: ... diff --git a/stdlib/logging/config.pyi b/stdlib/logging/config.pyi index e92658f7f1b3..bf87efbf2c80 100644 --- a/stdlib/logging/config.pyi +++ b/stdlib/logging/config.pyi @@ -101,14 +101,14 @@ class ConvertingList(list[Any], ConvertingMixin): # undocumented @overload def __getitem__(self, key: SupportsIndex) -> Any: ... @overload - def __getitem__(self, key: slice) -> Any: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> Any: ... def pop(self, idx: SupportsIndex = -1) -> Any: ... class ConvertingTuple(tuple[Any, ...], ConvertingMixin): # undocumented @overload def __getitem__(self, key: SupportsIndex) -> Any: ... @overload - def __getitem__(self, key: slice) -> Any: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> Any: ... class BaseConfigurator: # undocumented CONVERT_PATTERN: Pattern[str] diff --git a/stdlib/mmap.pyi b/stdlib/mmap.pyi index 8da4ea7ca864..df6dbfc7d798 100644 --- a/stdlib/mmap.pyi +++ b/stdlib/mmap.pyi @@ -1,7 +1,7 @@ import sys from _typeshed import ReadableBuffer, Unused from collections.abc import Iterable, Iterator, Sized -from typing import NoReturn, overload +from typing import Any, NoReturn, overload from typing_extensions import Self ACCESS_DEFAULT: int @@ -62,12 +62,12 @@ class mmap(Iterable[int], Sized): @overload def __getitem__(self, __key: int) -> int: ... @overload - def __getitem__(self, __key: slice) -> bytes: ... - def __delitem__(self, __key: int | slice) -> NoReturn: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> bytes: ... + def __delitem__(self, __key: int | slice[Any, Any, Any]) -> NoReturn: ... @overload def __setitem__(self, __key: int, __value: int) -> None: ... @overload - def __setitem__(self, __key: slice, __value: ReadableBuffer) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: ReadableBuffer) -> None: ... # Doesn't actually exist, but the object actually supports "in" because it has __getitem__, # so we claim that there is also a __contains__ to help type checkers. def __contains__(self, __o: object) -> bool: ... diff --git a/stdlib/multiprocessing/managers.pyi b/stdlib/multiprocessing/managers.pyi index 27a903fb9987..c4c595ceac98 100644 --- a/stdlib/multiprocessing/managers.pyi +++ b/stdlib/multiprocessing/managers.pyi @@ -89,15 +89,15 @@ class BaseListProxy(BaseProxy, MutableSequence[_T]): __builtins__: ClassVar[dict[str, Any]] def __len__(self) -> int: ... def __add__(self, __x: list[_T]) -> list[_T]: ... - def __delitem__(self, __i: SupportsIndex | slice) -> None: ... + def __delitem__(self, __i: SupportsIndex | slice[Any, Any, Any]) -> None: ... @overload def __getitem__(self, __i: SupportsIndex) -> _T: ... @overload - def __getitem__(self, __s: slice) -> list[_T]: ... + def __getitem__(self, __s: slice[Any, Any, Any]) -> list[_T]: ... @overload def __setitem__(self, __i: SupportsIndex, __o: _T) -> None: ... @overload - def __setitem__(self, __s: slice, __o: Iterable[_T]) -> None: ... + def __setitem__(self, __s: slice[Any, Any, Any], __o: Iterable[_T]) -> None: ... def __mul__(self, __n: SupportsIndex) -> list[_T]: ... def __rmul__(self, __n: SupportsIndex) -> list[_T]: ... def __reversed__(self) -> Iterator[_T]: ... diff --git a/stdlib/sqlite3/dbapi2.pyi b/stdlib/sqlite3/dbapi2.pyi index 24974f787c62..43856bd849ba 100644 --- a/stdlib/sqlite3/dbapi2.pyi +++ b/stdlib/sqlite3/dbapi2.pyi @@ -418,7 +418,7 @@ class Row: @overload def __getitem__(self, __key: int | str) -> Any: ... @overload - def __getitem__(self, __key: slice) -> tuple[Any, ...]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> tuple[Any, ...]: ... def __iter__(self) -> Iterator[Any]: ... def __len__(self) -> int: ... # These return NotImplemented for anything that is not a Row. @@ -453,5 +453,5 @@ if sys.version_info >= (3, 11): def __len__(self) -> int: ... def __enter__(self) -> Self: ... def __exit__(self, __type: object, __val: object, __tb: object) -> Literal[False]: ... - def __getitem__(self, __key: SupportsIndex | slice) -> int: ... - def __setitem__(self, __key: SupportsIndex | slice, __value: int) -> None: ... + def __getitem__(self, __key: SupportsIndex | slice[Any, Any, Any]) -> int: ... + def __setitem__(self, __key: SupportsIndex | slice[Any, Any, Any], __value: int) -> None: ... diff --git a/stdlib/sre_parse.pyi b/stdlib/sre_parse.pyi index 56f10bb41d57..f044de9767aa 100644 --- a/stdlib/sre_parse.pyi +++ b/stdlib/sre_parse.pyi @@ -59,9 +59,9 @@ class SubPattern: def dump(self, level: int = 0) -> None: ... def __len__(self) -> int: ... - def __delitem__(self, index: int | slice) -> None: ... - def __getitem__(self, index: int | slice) -> SubPattern | _CodeType: ... - def __setitem__(self, index: int | slice, code: _CodeType) -> None: ... + def __delitem__(self, index: int | slice[Any, Any, Any]) -> None: ... + def __getitem__(self, index: int | slice[Any, Any, Any]) -> SubPattern | _CodeType: ... + def __setitem__(self, index: int | slice[Any, Any, Any], code: _CodeType) -> None: ... def insert(self, index: int, code: _CodeType) -> None: ... def append(self, code: _CodeType) -> None: ... def getwidth(self) -> tuple[int, int]: ... diff --git a/stdlib/tracemalloc.pyi b/stdlib/tracemalloc.pyi index 3dc8b8603fe5..29ffed2c5b83 100644 --- a/stdlib/tracemalloc.pyi +++ b/stdlib/tracemalloc.pyi @@ -93,7 +93,7 @@ class Traceback(Sequence[Frame]): @overload def __getitem__(self, index: SupportsIndex) -> Frame: ... @overload - def __getitem__(self, index: slice) -> Sequence[Frame]: ... + def __getitem__(self, index: slice[Any, Any, Any]) -> Sequence[Frame]: ... def __contains__(self, frame: Frame) -> bool: ... # type: ignore[override] def __len__(self) -> int: ... def __eq__(self, other: object) -> bool: ... diff --git a/stdlib/typing.pyi b/stdlib/typing.pyi index 6fc677dcbdc9..066770454731 100644 --- a/stdlib/typing.pyi +++ b/stdlib/typing.pyi @@ -464,7 +464,7 @@ class Sequence(Collection[_T_co], Reversible[_T_co], Generic[_T_co]): def __getitem__(self, index: int) -> _T_co: ... @overload @abstractmethod - def __getitem__(self, index: slice) -> Sequence[_T_co]: ... + def __getitem__(self, index: slice[Any, Any, Any]) -> Sequence[_T_co]: ... # Mixin methods def index(self, value: Any, start: int = 0, stop: int = ...) -> int: ... def count(self, value: Any) -> int: ... @@ -480,19 +480,19 @@ class MutableSequence(Sequence[_T], Generic[_T]): def __getitem__(self, index: int) -> _T: ... @overload @abstractmethod - def __getitem__(self, index: slice) -> MutableSequence[_T]: ... + def __getitem__(self, index: slice[Any, Any, Any]) -> MutableSequence[_T]: ... @overload @abstractmethod def __setitem__(self, index: int, value: _T) -> None: ... @overload @abstractmethod - def __setitem__(self, index: slice, value: Iterable[_T]) -> None: ... + def __setitem__(self, index: slice[Any, Any, Any], value: Iterable[_T]) -> None: ... @overload @abstractmethod def __delitem__(self, index: int) -> None: ... @overload @abstractmethod - def __delitem__(self, index: slice) -> None: ... + def __delitem__(self, index: slice[Any, Any, Any]) -> None: ... # Mixin methods def append(self, value: _T) -> None: ... def clear(self) -> None: ... diff --git a/stdlib/xml/etree/ElementTree.pyi b/stdlib/xml/etree/ElementTree.pyi index 2cf8dbbe7025..c2be8fbed6e2 100644 --- a/stdlib/xml/etree/ElementTree.pyi +++ b/stdlib/xml/etree/ElementTree.pyi @@ -112,18 +112,18 @@ class Element: def set(self, __key: str, __value: str) -> None: ... def __copy__(self) -> Element: ... # returns the type of self in Python impl, but not in C impl def __deepcopy__(self, __memo: Any) -> Element: ... # Only exists in C impl - def __delitem__(self, __key: SupportsIndex | slice) -> None: ... + def __delitem__(self, __key: SupportsIndex | slice[Any, Any, Any]) -> None: ... @overload def __getitem__(self, __key: SupportsIndex) -> Element: ... @overload - def __getitem__(self, __key: slice) -> list[Element]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> list[Element]: ... def __len__(self) -> int: ... # Doesn't actually exist at runtime, but instance of the class are indeed iterable due to __getitem__. def __iter__(self) -> Iterator[Element]: ... @overload def __setitem__(self, __key: SupportsIndex, __value: Element) -> None: ... @overload - def __setitem__(self, __key: slice, __value: Iterable[Element]) -> None: ... + def __setitem__(self, __key: slice[Any, Any, Any], __value: Iterable[Element]) -> None: ... if sys.version_info < (3, 9): def getchildren(self) -> list[Element]: ... def getiterator(self, tag: str | None = None) -> list[Element]: ... diff --git a/stubs/JACK-Client/jack/__init__.pyi b/stubs/JACK-Client/jack/__init__.pyi index c3ae62ea0d30..623d75cdfb1c 100644 --- a/stubs/JACK-Client/jack/__init__.pyi +++ b/stubs/JACK-Client/jack/__init__.pyi @@ -38,11 +38,11 @@ class _CBufferType: @overload def __getitem__(self, key: int) -> str: ... @overload - def __getitem__(self, key: slice) -> bytes: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> bytes: ... @overload def __setitem__(self, key: int, val: str) -> None: ... @overload - def __setitem__(self, key: slice, val: bytes) -> None: ... + def __setitem__(self, key: slice[Any, Any, Any], val: bytes) -> None: ... def __len__(self) -> int: ... def __bytes__(self) -> bytes: ... diff --git a/stubs/Markdown/markdown/util.pyi b/stubs/Markdown/markdown/util.pyi index 7482313b6b19..ddb71c084445 100644 --- a/stubs/Markdown/markdown/util.pyi +++ b/stubs/Markdown/markdown/util.pyi @@ -42,7 +42,7 @@ class Registry: def __contains__(self, item: object) -> bool: ... def __iter__(self) -> Any: ... @overload - def __getitem__(self, key: slice) -> Registry: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> Registry: ... @overload def __getitem__(self, key: str | int) -> Any: ... def __len__(self) -> int: ... diff --git a/stubs/SQLAlchemy/sqlalchemy/cresultproxy.pyi b/stubs/SQLAlchemy/sqlalchemy/cresultproxy.pyi index 4bf9b9ea1931..fce66ae5f34b 100644 --- a/stubs/SQLAlchemy/sqlalchemy/cresultproxy.pyi +++ b/stubs/SQLAlchemy/sqlalchemy/cresultproxy.pyi @@ -18,6 +18,6 @@ class BaseRow: @overload def __getitem__(self, __key: str | int) -> tuple[Any, ...]: ... @overload - def __getitem__(self, __key: slice) -> tuple[tuple[Any, ...]]: ... + def __getitem__(self, __key: slice[Any, Any, Any]) -> tuple[tuple[Any, ...]]: ... def safe_rowproxy_reconstructor(__cls, __state): ... diff --git a/stubs/cffi/_cffi_backend.pyi b/stubs/cffi/_cffi_backend.pyi index 89130d0b5ccd..fcd5c554f1ce 100644 --- a/stubs/cffi/_cffi_backend.pyi +++ b/stubs/cffi/_cffi_backend.pyi @@ -72,7 +72,7 @@ class _CDataBase: def __exit__(self, type: type[BaseException] | None, value: BaseException | None, traceback: types.TracebackType | None): ... def __float__(self) -> float: ... def __ge__(self, other): ... - def __getitem__(self, index: SupportsIndex | slice): ... + def __getitem__(self, index: SupportsIndex | slice[Any, Any, Any]): ... def __gt__(self, other): ... def __hash__(self) -> int: ... def __int__(self) -> int: ... @@ -83,7 +83,7 @@ class _CDataBase: def __ne__(self, other): ... def __radd__(self, other): ... def __rsub__(self, other): ... - def __setitem__(self, index: SupportsIndex | slice, object: Incomplete) -> None: ... + def __setitem__(self, index: SupportsIndex | slice[Any, Any, Any], object: Incomplete) -> None: ... def __sub__(self, other): ... @final diff --git a/stubs/docutils/docutils/nodes.pyi b/stubs/docutils/docutils/nodes.pyi index 4059cd0d6214..7d942b32d137 100644 --- a/stubs/docutils/docutils/nodes.pyi +++ b/stubs/docutils/docutils/nodes.pyi @@ -91,14 +91,14 @@ class Element(Node): @overload def __getitem__(self, key: int) -> Node: ... @overload - def __getitem__(self, key: slice) -> list[Node]: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> list[Node]: ... @overload def __setitem__(self, key: str, item: Any) -> None: ... @overload def __setitem__(self, key: int, item: Node) -> None: ... @overload - def __setitem__(self, key: slice, item: Iterable[Node]) -> None: ... - def __delitem__(self, key: str | int | slice) -> None: ... + def __setitem__(self, key: slice[Any, Any, Any], item: Iterable[Node]) -> None: ... + def __delitem__(self, key: str | int | slice[Any, Any, Any]) -> None: ... def __add__(self, other: list[Node]) -> list[Node]: ... def __radd__(self, other: list[Node]) -> list[Node]: ... def __iadd__(self, other: Node | Iterable[Node]) -> Self: ... diff --git a/stubs/netaddr/netaddr/eui/__init__.pyi b/stubs/netaddr/netaddr/eui/__init__.pyi index 4dccd927a1d8..15e212972cff 100644 --- a/stubs/netaddr/netaddr/eui/__init__.pyi +++ b/stubs/netaddr/netaddr/eui/__init__.pyi @@ -1,4 +1,4 @@ -from typing import ClassVar, SupportsInt, overload +from typing import Any, ClassVar, SupportsInt, overload from typing_extensions import Literal, Self, SupportsIndex from netaddr.core import DictDotLookup @@ -57,9 +57,9 @@ class EUI(BaseIdentifier): @overload def __getitem__(self, idx: int) -> int: ... @overload - def __getitem__(self, idx: slice) -> list[int]: ... + def __getitem__(self, idx: slice[Any, Any, Any]) -> list[int]: ... @overload - def __getitem__(self, idx: int | slice) -> int | list[int]: ... + def __getitem__(self, idx: int | slice[Any, Any, Any]) -> int | list[int]: ... def __setitem__(self, idx: int, value: int) -> None: ... def __hash__(self) -> int: ... def __eq__(self, other: object) -> bool: ... diff --git a/stubs/netaddr/netaddr/ip/__init__.pyi b/stubs/netaddr/netaddr/ip/__init__.pyi index 24ed94f7397b..cdff662ebe4f 100644 --- a/stubs/netaddr/netaddr/ip/__init__.pyi +++ b/stubs/netaddr/netaddr/ip/__init__.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod from collections.abc import Iterable, Iterator -from typing import SupportsInt, overload +from typing import Any, SupportsInt, overload from typing_extensions import Literal, Self, SupportsIndex, TypeAlias from netaddr.core import DictDotLookup @@ -86,9 +86,9 @@ class IPListMixin: @overload def __getitem__(self, index: SupportsIndex) -> IPAddress: ... @overload - def __getitem__(self, index: slice) -> Iterator[IPAddress]: ... + def __getitem__(self, index: slice[Any, Any, Any]) -> Iterator[IPAddress]: ... @overload - def __getitem__(self, index: SupportsIndex | slice) -> IPAddress | Iterator[IPAddress]: ... + def __getitem__(self, index: SupportsIndex | slice[Any, Any, Any]) -> IPAddress | Iterator[IPAddress]: ... def __contains__(self, other: BaseIP | _IPAddressAddr) -> bool: ... def __bool__(self) -> Literal[True]: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 97e75b9eceb4..c8f99b711d03 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -80,7 +80,7 @@ class Worksheet(_WorkbookChild): def freeze_panes(self, topLeftCell: Incomplete | None = ...) -> None: ... def cell(self, row: int, column: int, value: str | None = None) -> Cell: ... @overload - def __getitem__(self, key: int | slice) -> tuple[Cell, ...]: ... + def __getitem__(self, key: int | slice[Any, Any, Any]) -> tuple[Cell, ...]: ... @overload def __getitem__(self, key: str) -> Any: ... # Cell | tuple[Cell, ...] def __setitem__(self, key: str, value: str) -> None: ... diff --git a/stubs/protobuf/google/protobuf/internal/containers.pyi b/stubs/protobuf/google/protobuf/internal/containers.pyi index 044cd65dc02b..8189fc407fd5 100644 --- a/stubs/protobuf/google/protobuf/internal/containers.pyi +++ b/stubs/protobuf/google/protobuf/internal/containers.pyi @@ -23,7 +23,7 @@ class BaseContainer(Sequence[_T]): @overload def __getitem__(self, key: SupportsIndex) -> _T: ... @overload - def __getitem__(self, key: slice) -> list[_T]: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> list[_T]: ... class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]): def __init__(self, message_listener: MessageListener, type_checker: _ValueChecker[_ScalarV]) -> None: ... @@ -36,8 +36,8 @@ class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]): @overload def __setitem__(self, key: int, value: _ScalarV) -> None: ... @overload - def __setitem__(self, key: slice, value: Iterable[_ScalarV]) -> None: ... - def __delitem__(self, key: int | slice) -> None: ... + def __setitem__(self, key: slice[Any, Any, Any], value: Iterable[_ScalarV]) -> None: ... + def __delitem__(self, key: int | slice[Any, Any, Any]) -> None: ... def __eq__(self, other: object) -> bool: ... class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]): @@ -49,7 +49,7 @@ class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]): def MergeFrom(self: _M, other: _M) -> None: ... def remove(self, elem: _MessageV) -> None: ... def pop(self, key: int = ...) -> _MessageV: ... - def __delitem__(self, key: int | slice) -> None: ... + def __delitem__(self, key: int | slice[Any, Any, Any]) -> None: ... def __eq__(self, other: object) -> bool: ... class ScalarMap(MutableMapping[_K, _ScalarV]): diff --git a/stubs/pyinstaller/PyInstaller/building/datastruct.pyi b/stubs/pyinstaller/PyInstaller/building/datastruct.pyi index 472aa855ccc3..96c5235b2d4b 100644 --- a/stubs/pyinstaller/PyInstaller/building/datastruct.pyi +++ b/stubs/pyinstaller/PyInstaller/building/datastruct.pyi @@ -18,7 +18,7 @@ class TOC(list[_TOCTuple]): def __sub__(self, other: Iterable[_TOCTuple]) -> TOC: ... def __rsub__(self, other: Iterable[_TOCTuple]) -> TOC: ... # slicing a TOC is not supported, but has a special case for slice(None, None, None) - def __setitem__(self, key: int | slice, value: Iterable[_TOCTuple]) -> None: ... # type: ignore[override] + def __setitem__(self, key: int | slice[None, None, None], value: Iterable[_TOCTuple]) -> None: ... # type: ignore[override] class Target: invcnum: ClassVar[int] diff --git a/stubs/python-xlib/Xlib/protocol/display.pyi b/stubs/python-xlib/Xlib/protocol/display.pyi index a9480b1c6a96..e2bac05b3de7 100644 --- a/stubs/python-xlib/Xlib/protocol/display.pyi +++ b/stubs/python-xlib/Xlib/protocol/display.pyi @@ -1,6 +1,6 @@ from _typeshed import _BufferWithLen from socket import socket -from typing import TypeVar, overload +from typing import Any, TypeVar, overload from typing_extensions import Literal from Xlib import error @@ -19,7 +19,7 @@ class bytesview: @overload def __init__(self, data: _BufferWithLen, offset: int = 0, size: int | None = None) -> None: ... @overload - def __getitem__(self, key: slice) -> bytes: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> bytes: ... @overload def __getitem__(self, key: int) -> int: ... def __len__(self) -> int: ... diff --git a/stubs/tensorflow/tensorflow/__init__.pyi b/stubs/tensorflow/tensorflow/__init__.pyi index 2fd54416b011..f8be7c7e2d08 100644 --- a/stubs/tensorflow/tensorflow/__init__.pyi +++ b/stubs/tensorflow/tensorflow/__init__.pyi @@ -62,7 +62,7 @@ from tensorflow.sparse import SparseTensor as SparseTensor # we will skip making Tensor generic. Also good type hints for shapes will # run quickly into many places where type system is not strong enough today. # So shape typing is probably not worth doing anytime soon. -_Slice: TypeAlias = int | slice | None +_Slice: TypeAlias = int | slice[Any, Any, Any] | None _FloatDataSequence: TypeAlias = Sequence[float] | Sequence[_FloatDataSequence] _StrDataSequence: TypeAlias = Sequence[str] | Sequence[_StrDataSequence] @@ -215,7 +215,7 @@ class TensorShape(metaclass=ABCMeta): @overload def __getitem__(self, key: int) -> int | None: ... @overload - def __getitem__(self, key: slice) -> TensorShape: ... + def __getitem__(self, key: slice[Any, Any, Any]) -> TensorShape: ... def __iter__(self) -> Iterator[int | None]: ... def __len__(self) -> int: ... def __add__(self, other: Iterable[int | None]) -> TensorShape: ... From 94698a34a657507de03bfa183d5502fa6b190120 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 12 May 2023 12:17:38 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/lib2to3/pytree.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stdlib/lib2to3/pytree.pyi b/stdlib/lib2to3/pytree.pyi index 080bd82edc54..e009fd9572bb 100644 --- a/stdlib/lib2to3/pytree.pyi +++ b/stdlib/lib2to3/pytree.pyi @@ -113,5 +113,6 @@ class NegatedPattern(BasePattern): def __init__(self, content: str | None = None) -> None: ... def generate_matches( - patterns: SupportsGetItem[int | slice[Any, Any, Any], BasePattern] | None, nodes: SupportsGetItem[int | slice[Any, Any, Any], _NL] + patterns: SupportsGetItem[int | slice[Any, Any, Any], BasePattern] | None, + nodes: SupportsGetItem[int | slice[Any, Any, Any], _NL], ) -> Iterator[tuple[int, _Results]]: ...