mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-16 00:37:10 +08:00
Add support for 6-ary izip and generic n-ary case
Using izip with up to 6 arguments will retain the arguments' type information, using izip with 7 and more arguments will discard type information about the generated tuple items.
This commit is contained in:
@@ -48,6 +48,7 @@ _T2 = TypeVar('_T2')
|
||||
_T3 = TypeVar('_T3')
|
||||
_T4 = TypeVar('_T4')
|
||||
_T5 = TypeVar('_T5')
|
||||
_T6 = TypeVar('_T6')
|
||||
|
||||
@overload
|
||||
def imap(func: Callable[[_T1], _S], iter1: Iterable[_T1]) -> Iterator[_S]: ...
|
||||
@@ -74,10 +75,18 @@ def izip(iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3],
|
||||
iter4: Iterable[_T4]) -> Iterator[Tuple[_T1, _T2,
|
||||
_T3, _T4]]: ...
|
||||
@overload
|
||||
def izip(iter1: Iterable[_T1], iter2: Iterable[_T2], iter3: Iterable[_T3],
|
||||
iter4: Iterable[_T4], iter5: Iterable[_T5]) -> Iterator[Tuple[_T1, _T2,
|
||||
_T3, _T4, _T5]]: ...
|
||||
# TODO more than five iterables
|
||||
def izip(iter1: Iterable[_T1], iter2: Iterable[_T2],
|
||||
iter3: Iterable[_T3], iter4: Iterable[_T4],
|
||||
iter5: Iterable[_T5]) -> Iterator[Tuple[_T1, _T2,
|
||||
_T3, _T4, _T5]]: ...
|
||||
@overload
|
||||
def izip(iter1: Iterable[_T1], iter2: Iterable[_T2],
|
||||
iter3: Iterable[_T3], iter4: Iterable[_T4],
|
||||
iter5: Iterable[_T5], iter6: Iterable[_T6]) -> Iterator[Tuple[_T1, _T2, _T3,
|
||||
_T4, _T5, _T6]]: ...
|
||||
@overload
|
||||
def izip(*iter: Iterable) -> Iterator[tuple]
|
||||
# TODO izip loses type information for 6 arguments and more
|
||||
|
||||
def izip_longest(*p: Iterable[Any],
|
||||
fillvalue: Any = ...) -> Iterator[Any]: ...
|
||||
|
||||
Reference in New Issue
Block a user