mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-19 18:31:14 +08:00
Improve stubs for sequence types (#6386)
This commit is contained in:
@@ -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: ...
|
||||
|
||||
Reference in New Issue
Block a user