1 # Stubs for itertools
\r
3 # Based on http://docs.python.org/3.2/library/itertools.html
\r
5 from typing import (Iterator, TypeVar, Iterable, overload, Any, Callable, Tuple,
\r
10 _N = TypeVar('_N', int, float)
\r
12 def count(start: _N = ...,
\r
13 step: _N = ...) -> Iterator[_N]: ... # more general types?
\r
14 def cycle(iterable: Iterable[_T]) -> Iterator[_T]: ...
\r
17 def repeat(object: _T) -> Iterator[_T]: ...
\r
19 def repeat(object: _T, times: int) -> Iterator[_T]: ...
\r
21 def accumulate(iterable: Iterable[_T], func: Callable[[_T, _T], _T] = ...) -> Iterator[_T]: ...
\r
23 class chain(Iterator[_T], Generic[_T]):
\r
24 def __init__(self, *iterables: Iterable[_T]) -> None: ...
\r
25 def __next__(self) -> _T: ...
\r
26 def __iter__(self) -> Iterator[_T]: ...
\r
28 def from_iterable(iterable: Iterable[Iterable[_S]]) -> Iterator[_S]: ...
\r
30 def compress(data: Iterable[_T], selectors: Iterable[Any]) -> Iterator[_T]: ...
\r
31 def dropwhile(predicate: Callable[[_T], Any],
\r
32 iterable: Iterable[_T]) -> Iterator[_T]: ...
\r
33 def filterfalse(predicate: Optional[Callable[[_T], Any]],
\r
34 iterable: Iterable[_T]) -> Iterator[_T]: ...
\r
37 def groupby(iterable: Iterable[_T]) -> Iterator[Tuple[_T, Iterator[_T]]]: ...
\r
39 def groupby(iterable: Iterable[_T],
\r
40 key: Callable[[_T], _S]) -> Iterator[Tuple[_S, Iterator[_T]]]: ...
\r
43 def islice(iterable: Iterable[_T], stop: Optional[int]) -> Iterator[_T]: ...
\r
45 def islice(iterable: Iterable[_T], start: Optional[int], stop: Optional[int],
\r
46 step: Optional[int] = ...) -> Iterator[_T]: ...
\r
48 def starmap(func: Callable[..., _S], iterable: Iterable[Iterable[Any]]) -> Iterator[_S]: ...
\r
49 def takewhile(predicate: Callable[[_T], Any],
\r
50 iterable: Iterable[_T]) -> Iterator[_T]: ...
\r
51 def tee(iterable: Iterable[_T], n: int = ...) -> Tuple[Iterator[_T], ...]: ...
\r
52 def zip_longest(*p: Iterable[Any],
\r
53 fillvalue: Any = ...) -> Iterator[Any]: ...
\r
55 _T1 = TypeVar('_T1')
\r
56 _T2 = TypeVar('_T2')
\r
57 _T3 = TypeVar('_T3')
\r
58 _T4 = TypeVar('_T4')
\r
59 _T5 = TypeVar('_T5')
\r
60 _T6 = TypeVar('_T6')
\r
63 def product(iter1: Iterable[_T1]) -> Iterator[Tuple[_T1]]: ...
\r
65 def product(iter1: Iterable[_T1],
\r
66 iter2: Iterable[_T2]) -> Iterator[Tuple[_T1, _T2]]: ...
\r
68 def product(iter1: Iterable[_T1],
\r
69 iter2: Iterable[_T2],
\r
70 iter3: Iterable[_T3]) -> Iterator[Tuple[_T1, _T2, _T3]]: ...
\r
72 def product(iter1: Iterable[_T1],
\r
73 iter2: Iterable[_T2],
\r
74 iter3: Iterable[_T3],
\r
75 iter4: Iterable[_T4]) -> Iterator[Tuple[_T1, _T2, _T3, _T4]]: ...
\r
77 def product(iter1: Iterable[_T1],
\r
78 iter2: Iterable[_T2],
\r
79 iter3: Iterable[_T3],
\r
80 iter4: Iterable[_T4],
\r
81 iter5: Iterable[_T5]) -> Iterator[Tuple[_T1, _T2, _T3, _T4, _T5]]: ...
\r
83 def product(iter1: Iterable[_T1],
\r
84 iter2: Iterable[_T2],
\r
85 iter3: Iterable[_T3],
\r
86 iter4: Iterable[_T4],
\r
87 iter5: Iterable[_T5],
\r
88 iter6: Iterable[_T6]) -> Iterator[Tuple[_T1, _T2, _T3, _T4, _T5, _T6]]: ...
\r
90 def product(iter1: Iterable[Any],
\r
91 iter2: Iterable[Any],
\r
92 iter3: Iterable[Any],
\r
93 iter4: Iterable[Any],
\r
94 iter5: Iterable[Any],
\r
95 iter6: Iterable[Any],
\r
96 iter7: Iterable[Any],
\r
97 *iterables: Iterable[Any]) -> Iterator[Tuple[Any, ...]]: ...
\r
99 def product(*iterables: Iterable[Any], repeat: int) -> Iterator[Tuple[Any, ...]]: ...
\r
101 def permutations(iterable: Iterable[_T],
\r
102 r: Optional[int] = ...) -> Iterator[Tuple[_T, ...]]: ...
\r
103 def combinations(iterable: Iterable[_T],
\r
104 r: int) -> Iterable[Tuple[_T, ...]]: ...
\r
105 def combinations_with_replacement(iterable: Iterable[_T],
\r
106 r: int) -> Iterable[Tuple[_T, ...]]: ...
\r