Skip to main content

layered configuration aggregator

Project description

Load and merge nested configurations.

Usage

Installation:

python -m pip install overdub

With these structures:

from overdub import MutableOverdub

a = {'foo': 1, 'bar': {'baz': 2}, 'qux': {'one': 1}}
b = {'foo': 3, 'bar': {'baz': 4}, 'qux': {'two': 2}}

Update:

overdubbed = MutableOverdub(a)
overdubbed.update(b)
assert overdubbed.foo == 3
assert overdubbed.bar.baz == 4
assert overdubbed.qux == {'two': 2}

Merge:

overdubbed = MutableOverdub(a)
overdubbed.merge(b)
assert overdubbed.foo == 3
assert overdubbed.bar.baz == 4
assert overdubbed.qux == {'one': 1, 'two': 2}

Rebase:

overdubbed = MutableOverdub(a)
overdubbed.rebase(b)
assert overdubbed.foo == 1
assert overdubbed.bar.baz == 2
assert overdubbed.qux == {'one': 1, 'two': 2}

Unbound the data:

overdubbed = MutableOverdub(a)
assert isinstance(overdubbed, Overdub)
naked = MutableOverdub(a)
assert not isinstance(naked, Overdub)

Freeze configuration:

overdubbed = overdubbed.frozen()

YAML files

It can also read configuration from yaml files, for this install:

python -m pip install overdub[yaml]

And then, merge all files:

from overdub import yaml

overdubbed = yaml.load_from_file('a.yml', b.yml')
assert overdubbed.foo == 3
assert overdubbed.bar.baz == 4
assert overdubbed.qux == {'one': 1, 'two': 2}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for overdub, version 0.7
Filename, size File type Python version Upload date Hashes
Filename, size overdub-0.7-py2-none-any.whl (8.9 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size overdub-0.7.tar.gz (18.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page