__version__ = "0.0.14"
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00__init__.ipynb.

# %% auto 0
__all__ = ['loadmod']

# %% ../nbs/00__init__.ipynb 3
from itertools import chain
from importlib import import_module
from types import ModuleType

def loadmod(mod: ModuleType):
    if hasattr(mod, '__all__'): return mod.__all__
    if got := getattr(mod, '__module__', 'ltyp'):        
        if got == 'abc': got = f'ltyp.{mod.__name__}'
        return loadmod(import_module(got))
    raise AttributeError(f"module {mod} has no attribute '__all__'")


# %% ../nbs/00__init__.ipynb 4
from ltyp import (
    atyp, 
    bool as bmod, 
    nums as numm, 
    nans as nmod, 
    strs, iter as imod, 
    data, dims
)

from .bool import *
from .nums import *
from .nans import *
from .iter import *
from .strs import *
from .data import *
from .dims import *

# %% ../nbs/00__init__.ipynb 5
__all__ = sorted(set(chain(*[
    loadmod(mod) for mod in (atyp, bmod, numm, nmod, imod, strs, data, dims)
])))
