123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- """Stubs for more_itertools.recipes"""
- from __future__ import annotations
- from collections.abc import Iterable, Iterator, Sequence
- from typing import (
- Any,
- Callable,
- TypeVar,
- overload,
- )
- __all__ = [
- 'all_equal',
- 'batched',
- 'before_and_after',
- 'consume',
- 'convolve',
- 'dotproduct',
- 'first_true',
- 'factor',
- 'flatten',
- 'grouper',
- 'is_prime',
- 'iter_except',
- 'iter_index',
- 'loops',
- 'matmul',
- 'ncycles',
- 'nth',
- 'nth_combination',
- 'padnone',
- 'pad_none',
- 'pairwise',
- 'partition',
- 'polynomial_eval',
- 'polynomial_from_roots',
- 'polynomial_derivative',
- 'powerset',
- 'prepend',
- 'quantify',
- 'reshape',
- 'random_combination_with_replacement',
- 'random_combination',
- 'random_permutation',
- 'random_product',
- 'repeatfunc',
- 'roundrobin',
- 'sieve',
- 'sliding_window',
- 'subslices',
- 'sum_of_squares',
- 'tabulate',
- 'tail',
- 'take',
- 'totient',
- 'transpose',
- 'triplewise',
- 'unique',
- 'unique_everseen',
- 'unique_justseen',
- ]
- # Type and type variable definitions
- _T = TypeVar('_T')
- _T1 = TypeVar('_T1')
- _T2 = TypeVar('_T2')
- _U = TypeVar('_U')
- def take(n: int, iterable: Iterable[_T]) -> list[_T]: ...
- def tabulate(
- function: Callable[[int], _T], start: int = ...
- ) -> Iterator[_T]: ...
- def tail(n: int, iterable: Iterable[_T]) -> Iterator[_T]: ...
- def consume(iterator: Iterable[_T], n: int | None = ...) -> None: ...
- @overload
- def nth(iterable: Iterable[_T], n: int) -> _T | None: ...
- @overload
- def nth(iterable: Iterable[_T], n: int, default: _U) -> _T | _U: ...
- def all_equal(
- iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...
- ) -> bool: ...
- def quantify(
- iterable: Iterable[_T], pred: Callable[[_T], bool] = ...
- ) -> int: ...
- def pad_none(iterable: Iterable[_T]) -> Iterator[_T | None]: ...
- def padnone(iterable: Iterable[_T]) -> Iterator[_T | None]: ...
- def ncycles(iterable: Iterable[_T], n: int) -> Iterator[_T]: ...
- def dotproduct(vec1: Iterable[_T1], vec2: Iterable[_T2]) -> Any: ...
- def flatten(listOfLists: Iterable[Iterable[_T]]) -> Iterator[_T]: ...
- def repeatfunc(
- func: Callable[..., _U], times: int | None = ..., *args: Any
- ) -> Iterator[_U]: ...
- def pairwise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T]]: ...
- def grouper(
- iterable: Iterable[_T],
- n: int,
- incomplete: str = ...,
- fillvalue: _U = ...,
- ) -> Iterator[tuple[_T | _U, ...]]: ...
- def roundrobin(*iterables: Iterable[_T]) -> Iterator[_T]: ...
- def partition(
- pred: Callable[[_T], object] | None, iterable: Iterable[_T]
- ) -> tuple[Iterator[_T], Iterator[_T]]: ...
- def powerset(iterable: Iterable[_T]) -> Iterator[tuple[_T, ...]]: ...
- def unique_everseen(
- iterable: Iterable[_T], key: Callable[[_T], _U] | None = ...
- ) -> Iterator[_T]: ...
- def unique_justseen(
- iterable: Iterable[_T], key: Callable[[_T], object] | None = ...
- ) -> Iterator[_T]: ...
- def unique(
- iterable: Iterable[_T],
- key: Callable[[_T], object] | None = ...,
- reverse: bool = False,
- ) -> Iterator[_T]: ...
- @overload
- def iter_except(
- func: Callable[[], _T],
- exception: type[BaseException] | tuple[type[BaseException], ...],
- first: None = ...,
- ) -> Iterator[_T]: ...
- @overload
- def iter_except(
- func: Callable[[], _T],
- exception: type[BaseException] | tuple[type[BaseException], ...],
- first: Callable[[], _U],
- ) -> Iterator[_T | _U]: ...
- @overload
- def first_true(
- iterable: Iterable[_T], *, pred: Callable[[_T], object] | None = ...
- ) -> _T | None: ...
- @overload
- def first_true(
- iterable: Iterable[_T],
- default: _U,
- pred: Callable[[_T], object] | None = ...,
- ) -> _T | _U: ...
- def random_product(
- *args: Iterable[_T], repeat: int = ...
- ) -> tuple[_T, ...]: ...
- def random_permutation(
- iterable: Iterable[_T], r: int | None = ...
- ) -> tuple[_T, ...]: ...
- def random_combination(iterable: Iterable[_T], r: int) -> tuple[_T, ...]: ...
- def random_combination_with_replacement(
- iterable: Iterable[_T], r: int
- ) -> tuple[_T, ...]: ...
- def nth_combination(
- iterable: Iterable[_T], r: int, index: int
- ) -> tuple[_T, ...]: ...
- def prepend(value: _T, iterator: Iterable[_U]) -> Iterator[_T | _U]: ...
- def convolve(signal: Iterable[_T], kernel: Iterable[_T]) -> Iterator[_T]: ...
- def before_and_after(
- predicate: Callable[[_T], bool], it: Iterable[_T]
- ) -> tuple[Iterator[_T], Iterator[_T]]: ...
- def triplewise(iterable: Iterable[_T]) -> Iterator[tuple[_T, _T, _T]]: ...
- def sliding_window(
- iterable: Iterable[_T], n: int
- ) -> Iterator[tuple[_T, ...]]: ...
- def subslices(iterable: Iterable[_T]) -> Iterator[list[_T]]: ...
- def polynomial_from_roots(roots: Sequence[_T]) -> list[_T]: ...
- def iter_index(
- iterable: Iterable[_T],
- value: Any,
- start: int | None = ...,
- stop: int | None = ...,
- ) -> Iterator[int]: ...
- def sieve(n: int) -> Iterator[int]: ...
- def batched(
- iterable: Iterable[_T], n: int, *, strict: bool = False
- ) -> Iterator[tuple[_T]]: ...
- def transpose(
- it: Iterable[Iterable[_T]],
- ) -> Iterator[tuple[_T, ...]]: ...
- def reshape(
- matrix: Iterable[Iterable[_T]], cols: int
- ) -> Iterator[tuple[_T, ...]]: ...
- def matmul(m1: Sequence[_T], m2: Sequence[_T]) -> Iterator[tuple[_T]]: ...
- def _factor_trial(n: int) -> Iterator[int]: ...
- def _factor_pollard(n: int) -> int: ...
- def factor(n: int) -> Iterator[int]: ...
- def polynomial_eval(coefficients: Sequence[_T], x: _U) -> _U: ...
- def sum_of_squares(it: Iterable[_T]) -> _T: ...
- def polynomial_derivative(coefficients: Sequence[_T]) -> list[_T]: ...
- def totient(n: int) -> int: ...
- def _shift_to_odd(n: int) -> tuple[int, int]: ...
- def _strong_probable_prime(n: int, base: int) -> bool: ...
- def is_prime(n: int) -> bool: ...
- def loops(n: int) -> Iterator[None]: ...
|