massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / coc-python-data / languageServer.0.5.59 / Typeshed / stdlib / 3 / itertools.pyi
1 # Stubs for itertools\r
2 \r
3 # Based on http://docs.python.org/3.2/library/itertools.html\r
4 \r
5 from typing import (Iterator, TypeVar, Iterable, overload, Any, Callable, Tuple,\r
6                     Generic, Optional)\r
7 \r
8 _T = TypeVar('_T')\r
9 _S = TypeVar('_S')\r
10 _N = TypeVar('_N', int, float)\r
11 \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
15 \r
16 @overload\r
17 def repeat(object: _T) -> Iterator[_T]: ...\r
18 @overload\r
19 def repeat(object: _T, times: int) -> Iterator[_T]: ...\r
20 \r
21 def accumulate(iterable: Iterable[_T], func: Callable[[_T, _T], _T] = ...) -> Iterator[_T]: ...\r
22 \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
27     @staticmethod\r
28     def from_iterable(iterable: Iterable[Iterable[_S]]) -> Iterator[_S]: ...\r
29 \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
35 \r
36 @overload\r
37 def groupby(iterable: Iterable[_T]) -> Iterator[Tuple[_T, Iterator[_T]]]: ...\r
38 @overload\r
39 def groupby(iterable: Iterable[_T],\r
40             key: Callable[[_T], _S]) -> Iterator[Tuple[_S, Iterator[_T]]]: ...\r
41 \r
42 @overload\r
43 def islice(iterable: Iterable[_T], stop: Optional[int]) -> Iterator[_T]: ...\r
44 @overload\r
45 def islice(iterable: Iterable[_T], start: Optional[int], stop: Optional[int],\r
46            step: Optional[int] = ...) -> Iterator[_T]: ...\r
47 \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
54 \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
61 \r
62 @overload\r
63 def product(iter1: Iterable[_T1]) -> Iterator[Tuple[_T1]]: ...\r
64 @overload\r
65 def product(iter1: Iterable[_T1],\r
66             iter2: Iterable[_T2]) -> Iterator[Tuple[_T1, _T2]]: ...\r
67 @overload\r
68 def product(iter1: Iterable[_T1],\r
69             iter2: Iterable[_T2],\r
70             iter3: Iterable[_T3]) -> Iterator[Tuple[_T1, _T2, _T3]]: ...\r
71 @overload\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
76 @overload\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
82 @overload\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
89 @overload\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
98 @overload\r
99 def product(*iterables: Iterable[Any], repeat: int) -> Iterator[Tuple[Any, ...]]: ...\r
100 \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