37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from dotenv import dotenv_values
|
|
|
|
|
|
def populate_values(load: {}):
|
|
conf = load
|
|
conf['IS_DEV']: bool = str.lower(load['ENVIRONMENT']) == 'dev'
|
|
conf['USE_EMULATOR']: bool = str.lower(load['USE_EMULATOR']) == 'true'
|
|
conf['BIND_PORT']: int = int(load['BIND_PORT'])
|
|
|
|
conf['STRIP_PIXELS']: int = int(load['STRIP_PIXELS'])
|
|
conf['STRIP_GPIO_PIN']: int = int(load['STRIP_GPIO_PIN'])
|
|
conf['STRIP_HZ']: int = int(load['STRIP_HZ'])
|
|
conf['STRIP_DMA']: int = int(load['STRIP_DMA'])
|
|
conf['STRIP_INVERT']: bool = str.lower(load['STRIP_INVERT']) == 'true'
|
|
conf['STRIP_BRIGHTNESS']: int = int(load['STRIP_BRIGHTNESS'])
|
|
conf['STRIP_CHANNEL']: int = int(load['STRIP_CHANNEL'])
|
|
conf['STRIP_TYPE']: int = int(load['STRIP_TYPE'])
|
|
|
|
conf['REGIONS']: [] = [int(x) for x in load['REGIONS'].split(',')]
|
|
conf['BPM_DEFAULT']: int = int(load['BPM_DEFAULT'])
|
|
|
|
return conf
|
|
|
|
|
|
class Config(object):
|
|
_config: {} = {}
|
|
|
|
def __init__(self):
|
|
load_conf = {
|
|
**dotenv_values(".env.defaults"),
|
|
**dotenv_values(".env"),
|
|
}
|
|
self._config = populate_values(load_conf)
|
|
|
|
def get(self, key: str):
|
|
return self._config[key]
|