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