# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/90_cstm.ipynb.

# %% auto 0
__all__ = ['FlagFunc', 'FlagFuncQ', 'P', 'BoolFunc', 'BoolCall', 'BoolCalls', 'BoolFuncQ', 'BoolCallQ', 'PathFormatFunc', 'Mixin']

# %% ../nbs/90_cstm.ipynb 6
import os
from numbers import Number

# %% ../nbs/90_cstm.ipynb 8
import types
from typing import (
    Type, TypeAlias, 
    ClassVar, Any, Optional, Callable, Iterable, 
)
from typing import List, Union, TypeAlias, Callable, Optional, ParamSpec, Type, Callable, Tuple

# %% ../nbs/90_cstm.ipynb 10
#| export


# %% ../nbs/90_cstm.ipynb 12
#| export


# %% ../nbs/90_cstm.ipynb 14
from .bool import Boolish
from .nums import Numeric
from .typq import AnyQ, StrQ

# %% ../nbs/90_cstm.ipynb 16
FlagFunc: TypeAlias = Callable[[AnyQ], Boolish]
FlagFuncQ: TypeAlias = Optional[FlagFunc]

# %% ../nbs/90_cstm.ipynb 18
P = ParamSpec('P')
BoolFunc: TypeAlias = Callable[P, Boolish]
BoolCall: TypeAlias = Union[bool, Callable]
BoolCalls: TypeAlias = List[BoolCall]

BoolFuncQ: TypeAlias = Optional[BoolFunc]
BoolCallQ: TypeAlias = Optional[BoolCall]

# %% ../nbs/90_cstm.ipynb 20
PathFormatFunc: TypeAlias = Callable[[os.PathLike, StrQ, StrQ, StrQ], str]

# %% ../nbs/90_cstm.ipynb 22
Mixin: TypeAlias =  Union[Tuple[Type, Callable], 'MixinType']
