Lib Python para gerenciar configurações
Site: dynaconf.com
Repo: https://github.com/dynaconf/dynaconf
Instalação
$ pip install dynaconf
Inicialização
A lib tem um init, no dir do projeto:
dynaconf init -f toml
No 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=9900
Uso
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