import importlib

__all__ = [
    'get_mysql',
    'mysql_now',
    'get_clickhouse',
    'SimpleState',

    'MySQLHomeDatabase',
    'SensorsDatabase',
    'InverterDatabase',
    'BotsDatabase'
]


def __getattr__(name: str):
    if name in __all__:
        ln = name.lower()
        if 'mysql' in ln:
            file = 'mysql'
        elif 'clickhouse' in ln:
            file = 'clickhouse'
        elif name.endswith('Database'):
            file = name[:-8].lower()
        else:
            file = 'simple_state'

        module = importlib.import_module(f'.{file}', __name__)
        return getattr(module, name)

    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
