codekingpro/portable-devtools
114k
1"""Stubs for more_itertools.recipes"""2from __future__ import annotations3 4from typing import (5 Any,6 Callable,7 Iterable,8 Iterator,9 overload,10 Sequence,11 Type,12 TypeVar,13)14 15# Type and type variable definitions16_T = TypeVar('_T')17_T1 = TypeVar('_T1')18_T2 = TypeVar('_T2')19_U = TypeVar('_U')20 21def take(n: int, iterable: Iterable[_T]) -> list[_T]: ...22def tabulate(23 function: Callable[[int], _T], start: int = ...24) -> Iterator[_T]: ...25def tail(n: int, iterable: Iterable[_T]) -> Iterator[_T]: ...26def consume(iterator: Iterable[_T], n: int | None = ...) -> None: ...27@overload28def nth(iterable: Iterable[_T], n: int) -> _T | None: ...29@overload30def nth(iterable: Iterable[_T], n: int, default: _U) -> _T | _U: ...31def all_equal(iterable: Iterable[_T]) -> bool: ...32def quantify(33 iterable: Iterable[_T], pred: Callable[[_T], bool] = ...34) -> int: ...35def pad_none(iterable: Iterable[_T]) -> Iterator[_T | None]: ...36def padnone(iterable: Iterable[_T]) -> Iterator[_T | None]: ...37def ncycles(iterable: Iterable[_T], n: int) -> Iterator[_T]: ...38def dotproduct(vec1: Iterable[_T1], vec2: Iterable[_T2]) -> Any: ...39def flatten(listOfLists: Iterable[Iterable[_T]]) -> Iterator[_T]: ...40def repeatfunc(41 func: Callable[..., _U], times: int | None = ..., *args: Any42) -> Iterator[_U]: ...43def pairwise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T]]: ...44def grouper(45 iterable: Iterable[_T],46 n: int,47 incomplete: str = ...,48 fillvalue: _U = ...,49) -> Iterator[tuple[_T | _U, ...]]: ...50def roundrobin(*iterables: Iterable[_T]) -> Iterator[_T]: ...51def partition(52 pred: Callable[[_T], object] | None, iterable: Iterable[_T]53) -> tuple[Iterator[_T], Iterator[_T]]: ...54def powerset(iterable: Iterable[_T]) -> Iterator[tuple[_T, ...]]: ...55def unique_everseen(56 iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...57) -> Iterator[_T]: ...58def unique_justseen(59 iterable: Iterable[_T], key: Callable[[_T], object] | None = ...60) -> Iterator[_T]: ...61@overload62def iter_except(63 func: Callable[[], _T],64 exception: Type[BaseException] | tuple[Type[BaseException], ...],65 first: None = ...,66) -> Iterator[_T]: ...67@overload68def iter_except(69 func: Callable[[], _T],70 exception: Type[BaseException] | tuple[Type[BaseException], ...],71 first: Callable[[], _U],72) -> Iterator[_T | _U]: ...73@overload74def first_true(75 iterable: Iterable[_T], *, pred: Callable[[_T], object] | None = ...76) -> _T | None: ...77@overload78def first_true(79 iterable: Iterable[_T],80 default: _U,81 pred: Callable[[_T], object] | None = ...,82) -> _T | _U: ...83def random_product(84 *args: Iterable[_T], repeat: int = ...85) -> tuple[_T, ...]: ...86def random_permutation(87 iterable: Iterable[_T], r: int | None = ...88) -> tuple[_T, ...]: ...89def random_combination(iterable: Iterable[_T], r: int) -> tuple[_T, ...]: ...90def random_combination_with_replacement(91 iterable: Iterable[_T], r: int92) -> tuple[_T, ...]: ...93def nth_combination(94 iterable: Iterable[_T], r: int, index: int95) -> tuple[_T, ...]: ...96def prepend(value: _T, iterator: Iterable[_U]) -> Iterator[_T | _U]: ...97def convolve(signal: Iterable[_T], kernel: Iterable[_T]) -> Iterator[_T]: ...98def before_and_after(99 predicate: Callable[[_T], bool], it: Iterable[_T]100) -> tuple[Iterator[_T], Iterator[_T]]: ...101def triplewise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T, _T]]: ...102def sliding_window(103 iterable: Iterable[_T], n: int104) -> Iterator[tuple[_T, ...]]: ...105def subslices(iterable: Iterable[_T]) -> Iterator[list[_T]]: ...106def polynomial_from_roots(roots: Sequence[_T]) -> list[_T]: ...107def iter_index(108 iterable: Iterable[_T],109 value: Any,110 start: int | None = ...,111 stop: int | None = ...,112) -> Iterator[int]: ...113def sieve(n: int) -> Iterator[int]: ...114def batched(115 iterable: Iterable[_T], n: int, *, strict: bool = False116) -> Iterator[tuple[_T]]: ...117def transpose(118 it: Iterable[Iterable[_T]],119) -> Iterator[tuple[_T, ...]]: ...120def reshape(121 matrix: Iterable[Iterable[_T]], cols: int122) -> Iterator[tuple[_T, ...]]: ...123def matmul(m1: Sequence[_T], m2: Sequence[_T]) -> Iterator[tuple[_T]]: ...124def factor(n: int) -> Iterator[int]: ...125def polynomial_eval(coefficients: Sequence[_T], x: _U) -> _U: ...126def sum_of_squares(it: Iterable[_T]) -> _T: ...127def polynomial_derivative(coefficients: Sequence[_T]) -> list[_T]: ...128def totient(n: int) -> int: ...129 