# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/03_nums.ipynb.

# %% auto 0
__all__ = ['intq', 'ints', 'floatq', 'floats', 'real', 'realq', 'reals', 'num', 'numq', 'nums', 'iternum', 'numstr']

# %% ../nbs/03_nums.ipynb 6
#| export


# %% ../nbs/03_nums.ipynb 8
from typing import Iterable

# %% ../nbs/03_nums.ipynb 10
#| export


# %% ../nbs/03_nums.ipynb 12
from ptyp import Prototype, Opt
from matr import number, nparray

# %% ../nbs/03_nums.ipynb 14
from .iter import itertype

# %% ../nbs/03_nums.ipynb 17
@Opt(int)
class intq: '''int or None'''

@Prototype(int, list, tuple, itertype, nparray, attrs=dict(dtype=int))
class ints: '''iterable of ints'''

# %% ../nbs/03_nums.ipynb 19
@Opt(float)
class floatq: '''float or None'''

@Prototype(float, list, tuple, itertype, nparray, attrs=dict(dtype=float))
class floats: '''iterable of floats'''

# %% ../nbs/03_nums.ipynb 21
@Prototype(int, float)
class real: '''R (i.e. int or float)'''

@Opt(real)
class realq: '''real or None'''

@Prototype(real, list, tuple, itertype, nparray, attrs=dict(dtype=real))
class reals: '''iterable of `real`'''

# %% ../nbs/03_nums.ipynb 23
@Prototype(int, float, complex, number)
class num: '''int, float, complex, or Number'''

@Opt(num)
class numq: '''num or None'''

@Prototype(num, list, tuple, itertype, nparray, attrs=dict(dtype=num))
class nums: '''list of `num`'''

# %% ../nbs/03_nums.ipynb 24
@Prototype(itertype, attrs=dict(dtype=num))
class iternum: '''iterable of `num``'''

# %% ../nbs/03_nums.ipynb 28
@Prototype(num, str)
class numstr: '''`num` or str'''
