Described configuration for large, complex projects
Project description
Described configuration for large, complex projects. Read the docs!
Features
Define config keys using a nicer API to colander.
Get config values as a callable before loading or directly afterwards.
Define multiple ‘confers’ to allow large codebases to be worked on independently.
Quick Usage
Firstly, define the key(s) you want to be in the config file. They can be any type colander supports, even custom types. Builtin types can be accessed more easily through the included data module.
import confing
from confing import data
confer = confing.getConfer('my_confer_name')
confer.define(data.String(name='secret_key'))
Next, load the data for the configuration.
loaded = confer.load({'secret_key': '...'})
loaded is confer.loaded
Lastly, get the key you want out of the config.
confer.loaded.secret_key
# or
confer.loaded['secret_key']
If you need to pass a configuration value to something either at module-import time or before the config is loaded, you can pass it a callable that will be the correct value once the config is loaded later. This will only work if the receiving party doesn’t attempt to resolve the value before the config is loaded.
``python confer.as_callable(‘secret_key’) ```
Install for development
$ pip install --editable .
Contributing
Anyone can help make this project better - read CONTRIBUTION to get started!
License
Apache 2.0. See the LICENSE file for more details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for confing-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f104501dcf5ed03d6a085d68475f80c4790cf3ab047851872e5a969b88a310b4 |
|
MD5 | 024bfa3468bea1d036530d0e6784972f |
|
BLAKE2b-256 | 12078166a54fa71fdb5b9f7a8406c1c0734b887fb1bcd7f6b3383261e3d9ad05 |