Skip to content

Commit d84ab49

Browse files
Use `slice[SupportesIndex | None] in more places that support it
1 parent 8a58633 commit d84ab49

File tree

8 files changed

+33
-33
lines changed

8 files changed

+33
-33
lines changed

stdlib/logging/config.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,14 @@ class ConvertingList(list[Any], ConvertingMixin): # undocumented
9797
@overload
9898
def __getitem__(self, key: SupportsIndex) -> Any: ...
9999
@overload
100-
def __getitem__(self, key: slice) -> Any: ...
100+
def __getitem__(self, key: slice[SupportsIndex | None]) -> Any: ...
101101
def pop(self, idx: SupportsIndex = -1) -> Any: ...
102102

103103
class ConvertingTuple(tuple[Any, ...], ConvertingMixin): # undocumented
104104
@overload
105105
def __getitem__(self, key: SupportsIndex) -> Any: ...
106106
@overload
107-
def __getitem__(self, key: slice) -> Any: ...
107+
def __getitem__(self, key: slice[SupportsIndex | None]) -> Any: ...
108108

109109
class BaseConfigurator: # undocumented
110110
CONVERT_PATTERN: Pattern[str]

stdlib/mmap.pyi

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import os
22
import sys
33
from _typeshed import ReadableBuffer, Unused
44
from collections.abc import Iterator
5-
from typing import Final, Literal, NoReturn, overload
5+
from typing import Final, Literal, NoReturn, SupportsIndex, overload
66
from typing_extensions import Self
77

88
ACCESS_DEFAULT: Final = 0
@@ -76,14 +76,14 @@ class mmap:
7676
def read(self, n: int | None = None) -> bytes: ...
7777
def write(self, bytes: ReadableBuffer) -> int: ...
7878
@overload
79-
def __getitem__(self, key: int, /) -> int: ...
79+
def __getitem__(self, key: SupportsIndex, /) -> int: ...
8080
@overload
81-
def __getitem__(self, key: slice, /) -> bytes: ...
82-
def __delitem__(self, key: int | slice, /) -> NoReturn: ...
81+
def __getitem__(self, key: slice[SupportsIndex | None], /) -> bytes: ...
82+
def __delitem__(self, key: SupportsIndex | slice[SupportsIndex | None], /) -> NoReturn: ...
8383
@overload
84-
def __setitem__(self, key: int, value: int, /) -> None: ...
84+
def __setitem__(self, key: SupportsIndex, value: int, /) -> None: ...
8585
@overload
86-
def __setitem__(self, key: slice, value: ReadableBuffer, /) -> None: ...
86+
def __setitem__(self, key: slice[SupportsIndex | None], value: ReadableBuffer, /) -> None: ...
8787
# Doesn't actually exist, but the object actually supports "in" because it has __getitem__,
8888
# so we claim that there is also a __contains__ to help type checkers.
8989
def __contains__(self, o: object, /) -> bool: ...

stdlib/multiprocessing/managers.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,15 @@ class BaseListProxy(BaseProxy, MutableSequence[_T]):
171171
__builtins__: ClassVar[dict[str, Any]]
172172
def __len__(self) -> int: ...
173173
def __add__(self, x: list[_T], /) -> list[_T]: ...
174-
def __delitem__(self, i: SupportsIndex | slice, /) -> None: ...
174+
def __delitem__(self, i: SupportsIndex | slice[SupportsIndex | None], /) -> None: ...
175175
@overload
176176
def __getitem__(self, i: SupportsIndex, /) -> _T: ...
177177
@overload
178-
def __getitem__(self, s: slice, /) -> list[_T]: ...
178+
def __getitem__(self, s: slice[SupportsIndex | None], /) -> list[_T]: ...
179179
@overload
180180
def __setitem__(self, i: SupportsIndex, o: _T, /) -> None: ...
181181
@overload
182-
def __setitem__(self, s: slice, o: Iterable[_T], /) -> None: ...
182+
def __setitem__(self, s: slice[SupportsIndex | None], o: Iterable[_T], /) -> None: ...
183183
def __mul__(self, n: SupportsIndex, /) -> list[_T]: ...
184184
def __rmul__(self, n: SupportsIndex, /) -> list[_T]: ...
185185
def __imul__(self, value: SupportsIndex, /) -> Self: ...

stdlib/multiprocessing/sharedctypes.pyi

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ from ctypes import _SimpleCData, c_char
55
from multiprocessing.context import BaseContext
66
from multiprocessing.synchronize import _LockLike
77
from types import TracebackType
8-
from typing import Any, Generic, Literal, Protocol, TypeVar, overload
8+
from typing import Any, Generic, Literal, Protocol, SupportsIndex, TypeVar, overload
99

1010
__all__ = ["RawValue", "RawArray", "Value", "Array", "copy", "synchronized"]
1111

@@ -103,27 +103,27 @@ class Synchronized(SynchronizedBase[_SimpleCData[_T]], Generic[_T]):
103103
class SynchronizedArray(SynchronizedBase[ctypes.Array[_SimpleCData[_T]]], Generic[_T]):
104104
def __len__(self) -> int: ...
105105
@overload
106-
def __getitem__(self, i: slice) -> list[_T]: ...
106+
def __getitem__(self, i: slice[SupportsIndex | None]) -> list[_T]: ...
107107
@overload
108-
def __getitem__(self, i: int) -> _T: ...
108+
def __getitem__(self, i: SupportsIndex) -> _T: ...
109109
@overload
110-
def __setitem__(self, i: slice, value: Iterable[_T]) -> None: ...
110+
def __setitem__(self, i: slice[SupportsIndex | None], value: Iterable[_T]) -> None: ...
111111
@overload
112-
def __setitem__(self, i: int, value: _T) -> None: ...
113-
def __getslice__(self, start: int, stop: int) -> list[_T]: ...
114-
def __setslice__(self, start: int, stop: int, values: Iterable[_T]) -> None: ...
112+
def __setitem__(self, i: SupportsIndex, value: _T) -> None: ...
113+
def __getslice__(self, start: SupportsIndex, stop: SupportsIndex) -> list[_T]: ...
114+
def __setslice__(self, start: SupportsIndex, stop: SupportsIndex, values: Iterable[_T]) -> None: ...
115115

116116
class SynchronizedString(SynchronizedArray[bytes]):
117117
@overload # type: ignore[override]
118-
def __getitem__(self, i: slice) -> bytes: ...
118+
def __getitem__(self, i: slice[SupportsIndex | None]) -> bytes: ...
119119
@overload
120-
def __getitem__(self, i: int) -> bytes: ...
120+
def __getitem__(self, i: SupportsIndex) -> bytes: ...
121121
@overload # type: ignore[override]
122-
def __setitem__(self, i: slice, value: bytes) -> None: ...
122+
def __setitem__(self, i: slice[SupportsIndex | None], value: bytes) -> None: ...
123123
@overload
124-
def __setitem__(self, i: int, value: bytes) -> None: ...
125-
def __getslice__(self, start: int, stop: int) -> bytes: ... # type: ignore[override]
126-
def __setslice__(self, start: int, stop: int, values: bytes) -> None: ... # type: ignore[override]
124+
def __setitem__(self, i: SupportsIndex, value: bytes) -> None: ...
125+
def __getslice__(self, start: SupportsIndex, stop: SupportsIndex) -> bytes: ... # type: ignore[override]
126+
def __setslice__(self, start: SupportsIndex, stop: SupportsIndex, values: bytes) -> None: ... # type: ignore[override]
127127

128128
value: bytes
129129
raw: bytes

stdlib/sqlite3/__init__.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -435,10 +435,10 @@ class PrepareProtocol:
435435
class Row(Sequence[Any]):
436436
def __new__(cls, cursor: Cursor, data: tuple[Any, ...], /) -> Self: ...
437437
def keys(self) -> list[str]: ...
438-
@overload
438+
@overload # Note: really needs int instead of SupportsIndex
439439
def __getitem__(self, key: int | str, /) -> Any: ...
440-
@overload
441-
def __getitem__(self, key: slice, /) -> tuple[Any, ...]: ...
440+
@overload # Note: SupportsIndex does work within slices.
441+
def __getitem__(self, key: slice[SupportsIndex | None], /) -> tuple[Any, ...]: ...
442442
def __hash__(self) -> int: ...
443443
def __iter__(self) -> Iterator[Any]: ...
444444
def __len__(self) -> int: ...

stdlib/traceback.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import sys
22
from _typeshed import SupportsWrite, Unused
33
from collections.abc import Generator, Iterable, Iterator, Mapping
44
from types import FrameType, TracebackType
5-
from typing import Any, ClassVar, Literal, overload
5+
from typing import Any, ClassVar, Literal, SupportsIndex, overload
66
from typing_extensions import Self, TypeAlias, deprecated
77

88
__all__ = [
@@ -288,9 +288,9 @@ class FrameSummary:
288288
@overload
289289
def __getitem__(self, pos: Literal[3]) -> str | None: ...
290290
@overload
291-
def __getitem__(self, pos: int) -> Any: ...
291+
def __getitem__(self, pos: SupportsIndex) -> Any: ...
292292
@overload
293-
def __getitem__(self, pos: slice) -> tuple[Any, ...]: ...
293+
def __getitem__(self, pos: slice[SupportsIndex | None]) -> tuple[Any, ...]: ...
294294
def __iter__(self) -> Iterator[Any]: ...
295295
def __eq__(self, other: object) -> bool: ...
296296
def __len__(self) -> Literal[4]: ...

stdlib/tracemalloc.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class Traceback(Sequence[Frame]):
9090
@overload
9191
def __getitem__(self, index: SupportsIndex) -> Frame: ...
9292
@overload
93-
def __getitem__(self, index: slice) -> Sequence[Frame]: ...
93+
def __getitem__(self, index: slice[SupportsIndex | None]) -> Sequence[Frame]: ...
9494
def __contains__(self, frame: Frame) -> bool: ... # type: ignore[override]
9595
def __len__(self) -> int: ...
9696
def __eq__(self, other: object) -> bool: ...

stdlib/xml/etree/ElementTree.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,14 @@ class Element(Generic[_Tag]):
124124
@overload
125125
def __getitem__(self, key: SupportsIndex, /) -> Element: ...
126126
@overload
127-
def __getitem__(self, key: slice, /) -> list[Element]: ...
127+
def __getitem__(self, key: slice[SupportsIndex | None], /) -> list[Element]: ...
128128
def __len__(self) -> int: ...
129129
# Doesn't actually exist at runtime, but instance of the class are indeed iterable due to __getitem__.
130130
def __iter__(self) -> Iterator[Element]: ...
131131
@overload
132132
def __setitem__(self, key: SupportsIndex, value: Element, /) -> None: ...
133133
@overload
134-
def __setitem__(self, key: slice, value: Iterable[Element], /) -> None: ...
134+
def __setitem__(self, key: slice[SupportsIndex | None], value: Iterable[Element], /) -> None: ...
135135

136136
# Doesn't really exist in earlier versions, where __len__ is called implicitly instead
137137
@deprecated("Testing an element's truth value is deprecated.")

0 commit comments

Comments
 (0)