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}")