# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/02_qtyp.ipynb.

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

# %% ../nbs/02_qtyp.ipynb 4
from typing import (
    Type, TypeAlias, 
    ClassVar, Literal,
    Any, Optional, Callable, 
    List, Iterable, 
    Set, Tuple, Union, 
)

from numbers import Number

# %% ../nbs/02_qtyp.ipynb 5
from .atyp import Boolish, Numeric, StrLike

# %% ../nbs/02_qtyp.ipynb 7
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/02_qtyp.ipynb 9
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]
