codekingpro/portable-devtools
114k
1"""Stubs for more_itertools.recipes"""2 3from __future__ import annotations4 5from collections.abc import Iterable, Iterator, Sequence6from decimal import Decimal7from fractions import Fraction8from typing import (9 Any,10 Callable,11 TypeVar,12 overload,13)14 15__all__ = [16 'all_equal',17 'batched',18 'before_and_after',19 'consume',20 'convolve',21 'dotproduct',22 'first_true',23 'factor',24 'flatten',25 'grouper',26 'is_prime',27 'iter_except',28 'iter_index',29 'loops',30 'matmul',31 'multinomial',32 'ncycles',33 'nth',34 'nth_combination',35 'padnone',36 'pad_none',37 'pairwise',38 'partition',39 'polynomial_eval',40 'polynomial_from_roots',41 'polynomial_derivative',42 'powerset',43 'prepend',44 'quantify',45 'reshape',46 'random_combination_with_replacement',47 'random_combination',48 'random_permutation',49 'random_product',50 'repeatfunc',51 'roundrobin',52 'running_median',53 'sieve',54 'sliding_window',55 'subslices',56 'sum_of_squares',57 'tabulate',58 'tail',59 'take',60 'totient',61 'transpose',62 'triplewise',63 'unique',64 'unique_everseen',65 'unique_justseen',66]67 68# Type and type variable definitions69_T = TypeVar('_T')70_T1 = TypeVar('_T1')71_T2 = TypeVar('_T2')72_U = TypeVar('_U')73_NumberT = TypeVar("_NumberT", float, Decimal, Fraction)74 75def take(n: int, iterable: Iterable[_T]) -> list[_T]: ...76def tabulate(77 function: Callable[[int], _T], start: int = ...78) -> Iterator[_T]: ...79def tail(n: int, iterable: Iterable[_T]) -> Iterator[_T]: ...80def consume(iterator: Iterable[_T], n: int | None = ...) -> None: ...81@overload82def nth(iterable: Iterable[_T], n: int) -> _T | None: ...83@overload84def nth(iterable: Iterable[_T], n: int, default: _U) -> _T | _U: ...85def all_equal(86 iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...87) -> bool: ...88def quantify(89 iterable: Iterable[_T], pred: Callable[[_T], bool] = ...90) -> int: ...91def pad_none(iterable: Iterable[_T]) -> Iterator[_T | None]: ...92def padnone(iterable: Iterable[_T]) -> Iterator[_T | None]: ...93def ncycles(iterable: Iterable[_T], n: int) -> Iterator[_T]: ...94def dotproduct(vec1: Iterable[_T1], vec2: Iterable[_T2]) -> Any: ...95def flatten(listOfLists: Iterable[Iterable[_T]]) -> Iterator[_T]: ...96def repeatfunc(97 func: Callable[..., _U], times: int | None = ..., *args: Any98) -> Iterator[_U]: ...99def pairwise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T]]: ...100def grouper(101 iterable: Iterable[_T],102 n: int,103 incomplete: str = ...,104 fillvalue: _U = ...,105) -> Iterator[tuple[_T | _U, ...]]: ...106def roundrobin(*iterables: Iterable[_T]) -> Iterator[_T]: ...107def partition(108 pred: Callable[[_T], object] | None, iterable: Iterable[_T]109) -> tuple[Iterator[_T], Iterator[_T]]: ...110def powerset(iterable: Iterable[_T]) -> Iterator[tuple[_T, ...]]: ...111def unique_everseen(112 iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...113) -> Iterator[_T]: ...114def unique_justseen(115 iterable: Iterable[_T], key: Callable[[_T], object] | None = ...116) -> Iterator[_T]: ...117def unique(118 iterable: Iterable[_T],119 key: Callable[[_T], object] | None = ...,120 reverse: bool = False,121) -> Iterator[_T]: ...122@overload123def iter_except(124 func: Callable[[], _T],125 exception: type[BaseException] | tuple[type[BaseException], ...],126 first: None = ...,127) -> Iterator[_T]: ...128@overload129def iter_except(130 func: Callable[[], _T],131 exception: type[BaseException] | tuple[type[BaseException], ...],132 first: Callable[[], _U],133) -> Iterator[_T | _U]: ...134@overload135def first_true(136 iterable: Iterable[_T], *, pred: Callable[[_T], object] | None = ...137) -> _T | None: ...138@overload139def first_true(140 iterable: Iterable[_T],141 default: _U,142 pred: Callable[[_T], object] | None = ...,143) -> _T | _U: ...144def random_product(145 *args: Iterable[_T], repeat: int = ...146) -> tuple[_T, ...]: ...147def random_permutation(148 iterable: Iterable[_T], r: int | None = ...149) -> tuple[_T, ...]: ...150def random_combination(iterable: Iterable[_T], r: int) -> tuple[_T, ...]: ...151def random_combination_with_replacement(152 iterable: Iterable[_T], r: int153) -> tuple[_T, ...]: ...154def nth_combination(155 iterable: Iterable[_T], r: int, index: int156) -> tuple[_T, ...]: ...157def prepend(value: _T, iterator: Iterable[_U]) -> Iterator[_T | _U]: ...158def convolve(signal: Iterable[_T], kernel: Iterable[_T]) -> Iterator[_T]: ...159def before_and_after(160 predicate: Callable[[_T], bool], it: Iterable[_T]161) -> tuple[Iterator[_T], Iterator[_T]]: ...162def triplewise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T, _T]]: ...163def sliding_window(164 iterable: Iterable[_T], n: int165) -> Iterator[tuple[_T, ...]]: ...166def subslices(iterable: Iterable[_T]) -> Iterator[list[_T]]: ...167def polynomial_from_roots(roots: Sequence[_T]) -> list[_T]: ...168def iter_index(169 iterable: Iterable[_T],170 value: Any,171 start: int | None = ...,172 stop: int | None = ...,173) -> Iterator[int]: ...174def sieve(n: int) -> Iterator[int]: ...175def _batched(176 iterable: Iterable[_T], n: int, *, strict: bool = False177) -> Iterator[tuple[_T, ...]]: ...178 179batched = _batched180 181def transpose(182 it: Iterable[Iterable[_T]],183) -> Iterator[tuple[_T, ...]]: ...184@overload185def reshape(186 matrix: Iterable[Iterable[_T]], shape: int187) -> Iterator[tuple[_T, ...]]: ...188@overload189def reshape(matrix: Iterable[Any], shape: Iterable[int]) -> Iterator[Any]: ...190def matmul(m1: Sequence[_T], m2: Sequence[_T]) -> Iterator[tuple[_T]]: ...191def _factor_trial(n: int) -> Iterator[int]: ...192def _factor_pollard(n: int) -> int: ...193def factor(n: int) -> Iterator[int]: ...194def polynomial_eval(coefficients: Sequence[_T], x: _U) -> _U: ...195def sum_of_squares(it: Iterable[_T]) -> _T: ...196def polynomial_derivative(coefficients: Sequence[_T]) -> list[_T]: ...197def totient(n: int) -> int: ...198def _shift_to_odd(n: int) -> tuple[int, int]: ...199def _strong_probable_prime(n: int, base: int) -> bool: ...200def is_prime(n: int) -> bool: ...201def loops(n: int) -> Iterator[None]: ...202def multinomial(*counts: int) -> int: ...203def running_median(204 iterable: Iterable[_NumberT], *, maxlen: int | None = ...205) -> Iterator[_NumberT]: ...206 