Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
67 lines (44 sloc) 1.27 KB


Build Status

Override Python dict contents with YAML file and/or environment variables.

Originally created for Django settings but may be useful in other cases.


pip install settings-overrider



from settings_overrider import override


# at the end of the file
override(globals(), ...)

Use YAML file path:

override(globals(), yaml='/etc/project-settings.yaml')

Use YAML file:

with open('/etc/project-settings.yaml') as f:
    override(globals(), yaml=f)

Use all environment variables with specified prefix:

override(globals(), env='PRJ_')

Prefix will be omitted, i.e. PRJ_DEBUG variable will become DEBUG setting.

Variable content will be parsed as YAML so you can use:

  • True / False: bool
  • Text / "Text": string
  • 123: number
  • { default: { ENGINE: django.db.backends.sqlite3, NAME: /tmp/prj.sqlite3 }} - nested dicts

You can combine YAML file and environment variables.

Contribute and test

git clone
cd settings-overrider
pip install -e '.[test]'
You can’t perform that action at this time.