Skip to content
@dynaconf

Dynaconf

Configuration Settings for Python

Dynaconf

DynaconfisConfiguration Management for Python.

MIT LicensePyPIcodecovGitHub Release DateGitHub last commitDiscussions

Features

  • Inspired by the12-factor application guide
  • Settings management(default values, validation, parsing, templating)
  • Protection ofsensitive information(passwords/tokens)
  • Multiplefile formatstoml|yaml|json|ini|pyand also customizable loaders.
  • Full support forenvironment variablesto override existing settings (dotenv support included).
  • Optional layered system formulti environments[default, development, testing, production](also called multi profiles)
  • Built-in support forHashicorp VaultandRedisas settings and secrets storage.
  • Built-in extensions forDjangoandFlaskweb frameworks.
  • CLIfor common operations such asinit, list, write, validate, export, get.
  • and many more features...

Installation

Install frompypi

pip install dynaconf

Read the docs onDynaconf

Quick Start

Looking forFlaskorDjangoplugins?

config.py

fromdynaconfimportDynaconf
settings=Dynaconf(
envvar_prefix="APP",
settings_files=["default_settings.toml"],
environments=["production","development"]
)

default_settings.toml(yaml, ini, json, py, cfg, etc...)

[default]
name="Default Name"
debug=true
data= {value=1}

[development]
name="amber"

[production]
debug=false
name="@vault /take/from/vault/secret"

main.py

fromconfigimportsettings

ifsettings.debug:
print(f "Hello{settings.name}")

print(settings.data.value)
print(settings.get("key",default="a default value for you"))
print(settings["NAME"],",this also works as a dict")

console

$Python main.py
Hello amber
1
a default value for you
amber, this also works as a dict

#Environment Variables overrides
$APP_NAME=Bruno Python main.py
Hello Bruno

#Nested env vars works
$APP_NAME=admin APP_DATA__VALUE=42 Python main.py
Hello admin
42

Try it online

Read the docs onDynaconf

Pinned Loading

  1. dynaconf dynaconfPublic

    Configuration Management for Python ⚙

    Python 3.6k 289

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…