Lib Python para gerenciar configurações
Site: dynaconf.com
Repo: https://github.com/dynaconf/dynaconf
Instalação
$ pip install dynaconfInicialização
A lib tem um init, no dir do projeto:
dynaconf init -f tomlNo arquivo settings.toml criado, podemos colocar:
username = "admin"
port = 5555
database = {name='mydb', schema='main'}Sobrescrever com env vars, basta usar o prefixo (DYNACONF), se necessário, podemos configurar o prefixo:
# override `port` from settings.toml file and automatically casts as `int` value.
export DYNACONF_PORT=9900Uso
E no código, para usar:
from path.to.project.config import settings
 
# Reading the settings
 
settings.username == "admin"  # dot notation with multi nesting support
settings.PORT == 9900  # case insensitive
settings['password'] == "secret123"  # dict like access
settings.get("nonexisting", "default value")  # Default values just like a dict
settings.databases.name == "mydb"  # Nested key traversing
settings['databases.schema'] == "main"  # Nested key traversing