recipes.pyi 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. """Stubs for more_itertools.recipes"""
  2. from typing import (
  3. Any,
  4. Callable,
  5. Iterable,
  6. Iterator,
  7. List,
  8. Optional,
  9. Tuple,
  10. TypeVar,
  11. Union,
  12. )
  13. from typing_extensions import overload, Type
  14. # Type and type variable definitions
  15. _T = TypeVar('_T')
  16. _U = TypeVar('_U')
  17. def take(n: int, iterable: Iterable[_T]) -> List[_T]: ...
  18. def tabulate(
  19. function: Callable[[int], _T], start: int = ...
  20. ) -> Iterator[_T]: ...
  21. def tail(n: int, iterable: Iterable[_T]) -> Iterator[_T]: ...
  22. def consume(iterator: Iterable[object], n: Optional[int] = ...) -> None: ...
  23. @overload
  24. def nth(iterable: Iterable[_T], n: int) -> Optional[_T]: ...
  25. @overload
  26. def nth(iterable: Iterable[_T], n: int, default: _U) -> Union[_T, _U]: ...
  27. def all_equal(iterable: Iterable[object]) -> bool: ...
  28. def quantify(
  29. iterable: Iterable[_T], pred: Callable[[_T], bool] = ...
  30. ) -> int: ...
  31. def pad_none(iterable: Iterable[_T]) -> Iterator[Optional[_T]]: ...
  32. def padnone(iterable: Iterable[_T]) -> Iterator[Optional[_T]]: ...
  33. def ncycles(iterable: Iterable[_T], n: int) -> Iterator[_T]: ...
  34. def dotproduct(vec1: Iterable[object], vec2: Iterable[object]) -> object: ...
  35. def flatten(listOfLists: Iterable[Iterable[_T]]) -> Iterator[_T]: ...
  36. def repeatfunc(
  37. func: Callable[..., _U], times: Optional[int] = ..., *args: Any
  38. ) -> Iterator[_U]: ...
  39. def pairwise(iterable: Iterable[_T]) -> Iterator[Tuple[_T, _T]]: ...
  40. @overload
  41. def grouper(
  42. iterable: Iterable[_T], n: int
  43. ) -> Iterator[Tuple[Optional[_T], ...]]: ...
  44. @overload
  45. def grouper(
  46. iterable: Iterable[_T], n: int, fillvalue: _U
  47. ) -> Iterator[Tuple[Union[_T, _U], ...]]: ...
  48. @overload
  49. def grouper( # Deprecated interface
  50. iterable: int, n: Iterable[_T]
  51. ) -> Iterator[Tuple[Optional[_T], ...]]: ...
  52. @overload
  53. def grouper( # Deprecated interface
  54. iterable: int, n: Iterable[_T], fillvalue: _U
  55. ) -> Iterator[Tuple[Union[_T, _U], ...]]: ...
  56. def roundrobin(*iterables: Iterable[_T]) -> Iterator[_T]: ...
  57. def partition(
  58. pred: Optional[Callable[[_T], object]], iterable: Iterable[_T]
  59. ) -> Tuple[Iterator[_T], Iterator[_T]]: ...
  60. def powerset(iterable: Iterable[_T]) -> Iterator[Tuple[_T, ...]]: ...
  61. def unique_everseen(
  62. iterable: Iterable[_T], key: Optional[Callable[[_T], _U]] = ...
  63. ) -> Iterator[_T]: ...
  64. def unique_justseen(
  65. iterable: Iterable[_T], key: Optional[Callable[[_T], object]] = ...
  66. ) -> Iterator[_T]: ...
  67. @overload
  68. def iter_except(
  69. func: Callable[[], _T], exception: Type[BaseException], first: None = ...
  70. ) -> Iterator[_T]: ...
  71. @overload
  72. def iter_except(
  73. func: Callable[[], _T],
  74. exception: Type[BaseException],
  75. first: Callable[[], _U],
  76. ) -> Iterator[Union[_T, _U]]: ...
  77. @overload
  78. def first_true(
  79. iterable: Iterable[_T], *, pred: Optional[Callable[[_T], object]] = ...
  80. ) -> Optional[_T]: ...
  81. @overload
  82. def first_true(
  83. iterable: Iterable[_T],
  84. default: _U,
  85. pred: Optional[Callable[[_T], object]] = ...,
  86. ) -> Union[_T, _U]: ...
  87. def random_product(
  88. *args: Iterable[_T], repeat: int = ...
  89. ) -> Tuple[_T, ...]: ...
  90. def random_permutation(
  91. iterable: Iterable[_T], r: Optional[int] = ...
  92. ) -> Tuple[_T, ...]: ...
  93. def random_combination(iterable: Iterable[_T], r: int) -> Tuple[_T, ...]: ...
  94. def random_combination_with_replacement(
  95. iterable: Iterable[_T], r: int
  96. ) -> Tuple[_T, ...]: ...
  97. def nth_combination(
  98. iterable: Iterable[_T], r: int, index: int
  99. ) -> Tuple[_T, ...]: ...
  100. def prepend(value: _T, iterator: Iterable[_U]) -> Iterator[Union[_T, _U]]: ...
  101. def convolve(signal: Iterable[_T], kernel: Iterable[_T]) -> Iterator[_T]: ...