# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/31_typq.ipynb.

# %% auto 0
__all__ = ['AnyQ', 'IntQ', 'SetQ', 'StrQ', 'ObjQ', 'BoolQ', 'DictQ', 'CallQ', 'TypeQ', 'ListQ', 'IterQ', 'FloatQ', 'TupleQ',
           'NumberQ', 'ComplexQ', 'StrLikeQ', 'ModuleQ', 'PathLikeQ', 'BoolFuncQ', 'BoolCallQ', 'ClsAnyQ', 'ClsIntQ',
           'ClsSetQ', 'ClsStrQ', 'ClsObjQ', 'ClsBoolQ', 'ClsCallQ', 'ClsTypeQ', 'ClsListQ', 'ClsIterQ', 'ClsFloatQ',
           'ClsNumberQ', 'ClsComplexQ', 'IdxQ', 'IndexQ', 'SeriesQ', 'DataFrameQ']

# %% ../nbs/31_typq.ipynb 6
import inspect

# %% ../nbs/31_typq.ipynb 8
import types
from typing import (
    TypeAlias, Literal, Union, List, Set,
    Iterable, Tuple, ForwardRef, TypeVar, TypeGuard
)
from typing import (ClassVar, Callable)
from typing import (
    Type, TypeAlias, 
    ClassVar, Any, Optional, Callable, Iterable, 
)
from numbers import Number

# %% ../nbs/31_typq.ipynb 10
#| export


# %% ../nbs/31_typq.ipynb 12
#| export


# %% ../nbs/31_typq.ipynb 14
from .bool import Boolish, BoolFunc, BoolCall
from .nums import Numeric
from .strs import StrLike
from .path import PathLike
from .type import Module
from .data import Idx, Index, Series, DataFrame

# %% ../nbs/31_typq.ipynb 17
AnyQ: TypeAlias = Optional[Any]
IntQ: TypeAlias = Optional[int]
SetQ: TypeAlias = Optional[set]
StrQ: TypeAlias = Optional[str]
ObjQ: TypeAlias = Optional[object]

BoolQ: TypeAlias = Optional[Boolish]
DictQ: TypeAlias = Optional[dict]
CallQ: TypeAlias = Optional[Callable]
TypeQ: TypeAlias = Optional[Type]
ListQ: TypeAlias = Optional[list]
IterQ: TypeAlias = Optional[Iterable]
FloatQ: TypeAlias = Optional[float]
TupleQ: TypeAlias = Optional[tuple]
NumberQ: TypeAlias = Optional[Numeric]
ComplexQ: TypeAlias = Optional[complex]

StrLikeQ: TypeAlias = Optional[StrLike]

# %% ../nbs/31_typq.ipynb 18
ModuleQ: TypeAlias = Optional[Module]

PathLikeQ: TypeAlias = Optional[PathLike]

# %% ../nbs/31_typq.ipynb 19
BoolFuncQ: TypeAlias = Optional[BoolFunc]

BoolCallQ: TypeAlias = Optional[BoolCall]

# %% ../nbs/31_typq.ipynb 21
ClsAnyQ = ClassVar[AnyQ]
ClsIntQ = ClassVar[IntQ]
ClsSetQ = ClassVar[SetQ]
ClsStrQ = ClassVar[StrQ]
ClsObjQ = ClassVar[ObjQ]
ClsBoolQ = ClassVar[BoolQ]
ClsCallQ = ClassVar[CallQ]
ClsTypeQ = ClassVar[TypeQ]
ClsListQ = ClassVar[ListQ]
ClsIterQ = ClassVar[IterQ]
ClsFloatQ = ClassVar[FloatQ]
ClsNumberQ = ClassVar[NumberQ]
ClsComplexQ = ClassVar[ComplexQ]

StrLikeQ: TypeAlias = Optional[StrLike]

# %% ../nbs/31_typq.ipynb 23
IdxQ: TypeAlias = Optional[Idx]
IndexQ: TypeAlias = Optional[Index]
SeriesQ: TypeAlias = Optional[Series]
DataFrameQ: TypeAlias = Optional[DataFrame]
