# -*- coding: utf-8 -*-
# Pretty ~ Useful ~ Python

from typing import Any
from typing import Callable
from typing import Iterable
from typing import List
from typing import Tuple
from typing import Union

from pupy._typing import Flint
from pupy._typing import Paths

def files_gen(dirpath: str = ..., abspath: bool = ...) -> Paths: ...
def dirs_gen(dirpath: str = ..., abspath: bool = ...) -> Paths: ...
def files_dirs_gen(dirpath: str = ..., abspath: bool = ...) -> Tuple[Paths, Paths]: ...
def walk_gen(dirpath: str = ..., abspath: bool = ...) -> Paths: ...
def exhaust(it: Iterable[Any]) -> None: ...
def chunks(it: Union[List[int], str], chunk_size: int) -> Iterable[Any]: ...
def is_permutation(
    a: Union[int, List[int], str], b: Union[int, List[int], str]
) -> bool: ...
def rotate(rlist: List[int], rn: int = ..., left_rotate: bool = ...) -> List[int]: ...
def rotations_gen(rlist: Iterable[Any]) -> Iterable[Any]: ...
def digits_list(number: int) -> List[int]: ...
def int_from_digits(digits: Iterable[int]) -> int: ...
def iter_product(l: Iterable[int]) -> Flint: ...
def spliterable(
    iterable: Iterable[Any], funk: Callable[[Any], bool]
) -> Tuple[Iterable[Any], Iterable[Any]]: ...
