Skip to content

Commit 4286a65

Browse files
replace slice with IndexSlice
1 parent af4df4e commit 4286a65

File tree

7 files changed

+41
-37
lines changed

7 files changed

+41
-37
lines changed

stdlib/_ctypes.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
from _typeshed import ReadableBuffer, WriteableBuffer
2+
from _typeshed import IndexSlice, ReadableBuffer, WriteableBuffer
33
from abc import abstractmethod
44
from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence
55
from ctypes import CDLL, ArgumentError as ArgumentError, c_void_p
@@ -96,7 +96,7 @@ class _Pointer(_PointerLike, _CData, Generic[_CT]):
9696
@overload
9797
def __getitem__(self, key: int, /) -> Any: ...
9898
@overload
99-
def __getitem__(self, key: slice, /) -> list[Any]: ...
99+
def __getitem__(self, key: IndexSlice, /) -> list[Any]: ...
100100
def __setitem__(self, key: int, value: Any, /) -> None: ...
101101

102102
@overload
@@ -193,11 +193,11 @@ class Array(_CData, Generic[_CT]):
193193
@overload
194194
def __getitem__(self, key: int, /) -> Any: ...
195195
@overload
196-
def __getitem__(self, key: slice, /) -> list[Any]: ...
196+
def __getitem__(self, key: IndexSlice, /) -> list[Any]: ...
197197
@overload
198198
def __setitem__(self, key: int, value: Any, /) -> None: ...
199199
@overload
200-
def __setitem__(self, key: slice, value: Iterable[Any], /) -> None: ...
200+
def __setitem__(self, key: IndexSlice, value: Iterable[Any], /) -> None: ...
201201
def __iter__(self) -> Iterator[Any]: ...
202202
# Can't inherit from Sized because the metaclass conflict between
203203
# Sized and _CData prevents using _CDataMeta.

stdlib/_operator.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
from _typeshed import SupportsGetItem
2+
from _typeshed import IndexSlice, SupportsGetItem
33
from collections.abc import Callable, Container, Iterable, MutableMapping, MutableSequence, Sequence
44
from operator import attrgetter as attrgetter, itemgetter as itemgetter, methodcaller as methodcaller
55
from typing import Any, AnyStr, Protocol, SupportsAbs, SupportsIndex, TypeVar, overload
@@ -75,18 +75,18 @@ def countOf(a: Iterable[object], b: object, /) -> int: ...
7575
@overload
7676
def delitem(a: MutableSequence[Any], b: SupportsIndex, /) -> None: ...
7777
@overload
78-
def delitem(a: MutableSequence[Any], b: slice, /) -> None: ...
78+
def delitem(a: MutableSequence[Any], b: IndexSlice, /) -> None: ...
7979
@overload
8080
def delitem(a: MutableMapping[_K, Any], b: _K, /) -> None: ...
8181
@overload
82-
def getitem(a: Sequence[_T], b: slice, /) -> Sequence[_T]: ...
82+
def getitem(a: Sequence[_T], b: IndexSlice, /) -> Sequence[_T]: ...
8383
@overload
8484
def getitem(a: SupportsGetItem[_K, _V], b: _K, /) -> _V: ...
8585
def indexOf(a: Iterable[_T], b: _T, /) -> int: ...
8686
@overload
8787
def setitem(a: MutableSequence[_T], b: SupportsIndex, c: _T, /) -> None: ...
8888
@overload
89-
def setitem(a: MutableSequence[_T], b: slice, c: Sequence[_T], /) -> None: ...
89+
def setitem(a: MutableSequence[_T], b: IndexSlice, c: Sequence[_T], /) -> None: ...
9090
@overload
9191
def setitem(a: MutableMapping[_K, _V], b: _K, c: _V, /) -> None: ...
9292
def length_hint(obj: object, default: int = 0, /) -> int: ...

stdlib/_typeshed/__init__.pyi

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ MaybeNone: TypeAlias = Any # stable
7070
# def foo(x: int | None | _SentinelType = ...) -> None: ...
7171
sentinel: Any
7272

73+
IndexSlice: TypeAlias = slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]
74+
IntSlice: TypeAlias = slice[int | None, int | None, int | None]
75+
7376
# stable
7477
class IdentityFunction(Protocol):
7578
def __call__(self, x: _T, /) -> _T: ...
@@ -281,15 +284,15 @@ WriteableBuffer: TypeAlias = Buffer
281284
ReadableBuffer: TypeAlias = Buffer # stable
282285

283286
class SliceableBuffer(Buffer, Protocol):
284-
def __getitem__(self, slice: slice, /) -> Sequence[int]: ...
287+
def __getitem__(self, slice: IndexSlice, /) -> Sequence[int]: ...
285288

286289
class IndexableBuffer(Buffer, Protocol):
287290
def __getitem__(self, i: int, /) -> int: ...
288291

289292
class SupportsGetItemBuffer(SliceableBuffer, IndexableBuffer, Protocol):
290293
def __contains__(self, x: Any, /) -> bool: ...
291294
@overload
292-
def __getitem__(self, slice: slice, /) -> Sequence[int]: ...
295+
def __getitem__(self, slice: IndexSlice, /) -> Sequence[int]: ...
293296
@overload
294297
def __getitem__(self, i: int, /) -> int: ...
295298

stdlib/array.pyi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
from _typeshed import ReadableBuffer, SupportsRead, SupportsWrite
2+
from _typeshed import IndexSlice, ReadableBuffer, SupportsRead, SupportsWrite
33
from collections.abc import Iterable
44

55
# pytype crashes if array inherits from collections.abc.MutableSequence instead of typing.MutableSequence
@@ -66,12 +66,12 @@ class array(MutableSequence[_T]):
6666
@overload
6767
def __getitem__(self, key: SupportsIndex, /) -> _T: ...
6868
@overload
69-
def __getitem__(self, key: slice, /) -> array[_T]: ...
69+
def __getitem__(self, key: IndexSlice, /) -> array[_T]: ...
7070
@overload # type: ignore[override]
7171
def __setitem__(self, key: SupportsIndex, value: _T, /) -> None: ...
7272
@overload
73-
def __setitem__(self, key: slice, value: array[_T], /) -> None: ...
74-
def __delitem__(self, key: SupportsIndex | slice, /) -> None: ...
73+
def __setitem__(self, key: IndexSlice, value: array[_T], /) -> None: ...
74+
def __delitem__(self, key: SupportsIndex | IndexSlice, /) -> None: ...
7575
def __add__(self, value: array[_T], /) -> array[_T]: ...
7676
def __eq__(self, value: object, /) -> bool: ...
7777
def __ge__(self, value: array[_T], /) -> bool: ...

stdlib/builtins.pyi

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ from _typeshed import (
99
ConvertibleToFloat,
1010
ConvertibleToInt,
1111
FileDescriptorOrPath,
12+
IndexSlice,
1213
MaybeNone,
1314
OpenBinaryMode,
1415
OpenBinaryModeReading,
@@ -594,9 +595,9 @@ class str(Sequence[str]):
594595
def __eq__(self, value: object, /) -> bool: ...
595596
def __ge__(self, value: str, /) -> bool: ...
596597
@overload
597-
def __getitem__(self: LiteralString, key: SupportsIndex | slice, /) -> LiteralString: ...
598+
def __getitem__(self: LiteralString, key: SupportsIndex | IndexSlice, /) -> LiteralString: ...
598599
@overload
599-
def __getitem__(self, key: SupportsIndex | slice, /) -> str: ... # type: ignore[misc]
600+
def __getitem__(self, key: SupportsIndex | IndexSlice, /) -> str: ... # type: ignore[misc]
600601
def __gt__(self, value: str, /) -> bool: ...
601602
def __hash__(self) -> int: ...
602603
@overload
@@ -702,7 +703,7 @@ class bytes(Sequence[int]):
702703
@overload
703704
def __getitem__(self, key: SupportsIndex, /) -> int: ...
704705
@overload
705-
def __getitem__(self, key: slice, /) -> bytes: ...
706+
def __getitem__(self, key: IndexSlice, /) -> bytes: ...
706707
def __add__(self, value: ReadableBuffer, /) -> bytes: ...
707708
def __mul__(self, value: SupportsIndex, /) -> bytes: ...
708709
def __rmul__(self, value: SupportsIndex, /) -> bytes: ...
@@ -808,12 +809,12 @@ class bytearray(MutableSequence[int]):
808809
@overload
809810
def __getitem__(self, key: SupportsIndex, /) -> int: ...
810811
@overload
811-
def __getitem__(self, key: slice, /) -> bytearray: ...
812+
def __getitem__(self, key: IndexSlice, /) -> bytearray: ...
812813
@overload
813814
def __setitem__(self, key: SupportsIndex, value: SupportsIndex, /) -> None: ...
814815
@overload
815-
def __setitem__(self, key: slice, value: Iterable[SupportsIndex] | bytes, /) -> None: ...
816-
def __delitem__(self, key: SupportsIndex | slice, /) -> None: ...
816+
def __setitem__(self, key: IndexSlice, value: Iterable[SupportsIndex] | bytes, /) -> None: ...
817+
def __delitem__(self, key: SupportsIndex | IndexSlice, /) -> None: ...
817818
def __add__(self, value: ReadableBuffer, /) -> bytearray: ...
818819
# The superclass wants us to accept Iterable[int], but that fails at runtime.
819820
def __iadd__(self, value: ReadableBuffer, /) -> Self: ... # type: ignore[override]
@@ -879,14 +880,14 @@ class memoryview(Sequence[_I]):
879880
@overload
880881
def __getitem__(self, key: SupportsIndex | tuple[SupportsIndex, ...], /) -> _I: ...
881882
@overload
882-
def __getitem__(self, key: slice, /) -> memoryview[_I]: ...
883+
def __getitem__(self, key: IndexSlice, /) -> memoryview[_I]: ...
883884
def __contains__(self, x: object, /) -> bool: ...
884885
def __iter__(self) -> Iterator[_I]: ...
885886
def __len__(self) -> int: ...
886887
def __eq__(self, value: object, /) -> bool: ...
887888
def __hash__(self) -> int: ...
888889
@overload
889-
def __setitem__(self, key: slice, value: ReadableBuffer, /) -> None: ...
890+
def __setitem__(self, key: IndexSlice, value: ReadableBuffer, /) -> None: ...
890891
@overload
891892
def __setitem__(self, key: SupportsIndex | tuple[SupportsIndex, ...], value: _I, /) -> None: ...
892893
if sys.version_info >= (3, 10):
@@ -974,7 +975,7 @@ class tuple(Sequence[_T_co]):
974975
@overload
975976
def __getitem__(self, key: SupportsIndex, /) -> _T_co: ...
976977
@overload
977-
def __getitem__(self, key: slice, /) -> tuple[_T_co, ...]: ...
978+
def __getitem__(self, key: IndexSlice, /) -> tuple[_T_co, ...]: ...
978979
def __iter__(self) -> Iterator[_T_co]: ...
979980
def __lt__(self, value: tuple[_T_co, ...], /) -> bool: ...
980981
def __le__(self, value: tuple[_T_co, ...], /) -> bool: ...
@@ -1051,12 +1052,12 @@ class list(MutableSequence[_T]):
10511052
@overload
10521053
def __getitem__(self, i: SupportsIndex, /) -> _T: ...
10531054
@overload
1054-
def __getitem__(self, s: slice, /) -> list[_T]: ...
1055+
def __getitem__(self, s: IndexSlice, /) -> list[_T]: ...
10551056
@overload
10561057
def __setitem__(self, key: SupportsIndex, value: _T, /) -> None: ...
10571058
@overload
1058-
def __setitem__(self, key: slice, value: Iterable[_T], /) -> None: ...
1059-
def __delitem__(self, key: SupportsIndex | slice, /) -> None: ...
1059+
def __setitem__(self, key: IndexSlice, value: Iterable[_T], /) -> None: ...
1060+
def __delitem__(self, key: SupportsIndex | IndexSlice, /) -> None: ...
10601061
# Overloading looks unnecessary, but is needed to work around complex mypy problems
10611062
@overload
10621063
def __add__(self, value: list[_T], /) -> list[_T]: ...
@@ -1257,7 +1258,7 @@ class range(Sequence[int]):
12571258
@overload
12581259
def __getitem__(self, key: SupportsIndex, /) -> int: ...
12591260
@overload
1260-
def __getitem__(self, key: slice, /) -> range: ...
1261+
def __getitem__(self, key: IndexSlice, /) -> range: ...
12611262
def __reversed__(self) -> Iterator[int]: ...
12621263

12631264
class property:

stdlib/collections/__init__.pyi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sys
22
from _collections_abc import dict_items, dict_keys, dict_values
3-
from _typeshed import SupportsItems, SupportsKeysAndGetItem, SupportsRichComparison, SupportsRichComparisonT
3+
from _typeshed import IndexSlice, SupportsItems, SupportsKeysAndGetItem, SupportsRichComparison, SupportsRichComparisonT
44
from typing import Any, Generic, NoReturn, SupportsIndex, TypeVar, final, overload
55
from typing_extensions import Self
66

@@ -129,12 +129,12 @@ class UserList(MutableSequence[_T]):
129129
@overload
130130
def __getitem__(self, i: SupportsIndex) -> _T: ...
131131
@overload
132-
def __getitem__(self, i: slice) -> Self: ...
132+
def __getitem__(self, i: IndexSlice) -> Self: ...
133133
@overload
134134
def __setitem__(self, i: SupportsIndex, item: _T) -> None: ...
135135
@overload
136-
def __setitem__(self, i: slice, item: Iterable[_T]) -> None: ...
137-
def __delitem__(self, i: SupportsIndex | slice) -> None: ...
136+
def __setitem__(self, i: IndexSlice, item: Iterable[_T]) -> None: ...
137+
def __delitem__(self, i: SupportsIndex | IndexSlice) -> None: ...
138138
def __add__(self, other: Iterable[_T]) -> Self: ...
139139
def __radd__(self, other: Iterable[_T]) -> Self: ...
140140
def __iadd__(self, other: Iterable[_T]) -> Self: ...
@@ -174,7 +174,7 @@ class UserString(Sequence[UserString]):
174174
def __hash__(self) -> int: ...
175175
def __contains__(self, char: object) -> bool: ...
176176
def __len__(self) -> int: ...
177-
def __getitem__(self, index: SupportsIndex | slice) -> Self: ...
177+
def __getitem__(self, index: SupportsIndex | IndexSlice) -> Self: ...
178178
def __iter__(self) -> Iterator[Self]: ...
179179
def __reversed__(self) -> Iterator[Self]: ...
180180
def __add__(self, other: object) -> Self: ...

stdlib/typing.pyi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import collections # noqa: F401 # pyright: ignore[reportUnusedImport]
66
import sys
77
import typing_extensions
88
from _collections_abc import dict_items, dict_keys, dict_values
9-
from _typeshed import IdentityFunction, ReadableBuffer, SupportsKeysAndGetItem
9+
from _typeshed import IdentityFunction, IndexSlice, ReadableBuffer, SupportsKeysAndGetItem
1010
from abc import ABCMeta, abstractmethod
1111
from re import Match as Match, Pattern as Pattern
1212
from types import (
@@ -581,7 +581,7 @@ class Sequence(Reversible[_T_co], Collection[_T_co]):
581581
def __getitem__(self, index: int) -> _T_co: ...
582582
@overload
583583
@abstractmethod
584-
def __getitem__(self, index: slice) -> Sequence[_T_co]: ...
584+
def __getitem__(self, index: IndexSlice) -> Sequence[_T_co]: ...
585585
# Mixin methods
586586
def index(self, value: Any, start: int = 0, stop: int = ...) -> int: ...
587587
def count(self, value: Any) -> int: ...
@@ -597,19 +597,19 @@ class MutableSequence(Sequence[_T]):
597597
def __getitem__(self, index: int) -> _T: ...
598598
@overload
599599
@abstractmethod
600-
def __getitem__(self, index: slice) -> MutableSequence[_T]: ...
600+
def __getitem__(self, index: IndexSlice) -> MutableSequence[_T]: ...
601601
@overload
602602
@abstractmethod
603603
def __setitem__(self, index: int, value: _T) -> None: ...
604604
@overload
605605
@abstractmethod
606-
def __setitem__(self, index: slice, value: Iterable[_T]) -> None: ...
606+
def __setitem__(self, index: IndexSlice, value: Iterable[_T]) -> None: ...
607607
@overload
608608
@abstractmethod
609609
def __delitem__(self, index: int) -> None: ...
610610
@overload
611611
@abstractmethod
612-
def __delitem__(self, index: slice) -> None: ...
612+
def __delitem__(self, index: IndexSlice) -> None: ...
613613
# Mixin methods
614614
def append(self, value: _T) -> None: ...
615615
def clear(self) -> None: ...

0 commit comments

Comments
 (0)