MinCfg: The Minimal Config System

Release v0.8.


Handling simple things simply…

from mincfg import MergedConfiguration, YamlFileSource

mycfg = MergedConfiguration([YamlFileSource('/etc/myapp.yaml'), YamlFileSource('~/.myapp.yaml')])

and more complicated things reasonably…

from mincfg import MergedConfiguration, YamlFileSource, OSEnvironSource, DictSource

defaults = DictSource({'url': 'https://example.com',
                       'user': 'testuser',
                       'pass': 'testpassword' })

mycfg = MergedConfiguration([defaults,
                             YamlFileSource('/etc/myapp.yaml'),
                             YamlFileSource('~/.myapp.yaml'),
                             YamlFileSource(os.environ.get('MYAPPCFG')),
                             OSEnvironSource('MYAPP_')
                            ])

The main caveat is that all config keys are case-insensitive (lower case).