summaryrefslogtreecommitdiff
path: root/src/home/database/__init__.py
blob: b50cbce69b96194e9e30b8e12f28caf1c427067a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import importlib

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

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


def __getattr__(name: str):
    if name in __all__:
        if name.endswith('Database'):
            file = name[:-8].lower()
        elif 'mysql' in name:
            file = 'mysql'
        elif 'clickhouse' in name:
            file = 'clickhouse'
        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}")