mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-23 04:11:28 +08:00
Allow reversed to take any object implementing __len__ and __getitem__ (#5820)
`reversed` is currently annotated as accepting either a `Sequence` or objects implementing the `__reversed__` protocol. This however is too strict as, per its [docs](https://docs.python.org/3/library/functions.html#reversed), it can take any object that implements `__len__` and `__getitem__`.
This commit is contained in:
@@ -11,6 +11,7 @@ from _typeshed import (
|
||||
StrOrBytesPath,
|
||||
SupportsDivMod,
|
||||
SupportsKeysAndGetItem,
|
||||
SupportsLenAndGetItem,
|
||||
SupportsLessThan,
|
||||
SupportsLessThanT,
|
||||
SupportsRDivMod,
|
||||
@@ -1286,10 +1287,10 @@ else:
|
||||
def quit(code: object = ...) -> NoReturn: ...
|
||||
|
||||
class reversed(Iterator[_T], Generic[_T]):
|
||||
@overload
|
||||
def __init__(self, __sequence: Sequence[_T]) -> None: ...
|
||||
@overload
|
||||
def __init__(self, __sequence: Reversible[_T]) -> None: ...
|
||||
@overload
|
||||
def __init__(self, __sequence: SupportsLenAndGetItem[_T]) -> None: ...
|
||||
def __iter__(self) -> Iterator[_T]: ...
|
||||
def __next__(self) -> _T: ...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user