A config library for handling nested incode config groups.
Project description
An offshoot of OpenStack’s Oslo.config with a focus on nested configuration groups, and the ability to use yaml.
CONFspirator drops any command-line integrations, or file reading (for now) and expects you to pass in a dictionary which will be parsed against the defined groups. This lets the library for now focus on in-code defaults and config field parsing.
What it can do
CONFspirator focuses on ConfigGroups and registering config fields onto them. With groups themselves being able to be registered on parent groups.
It can also support lazy loading of config for dynamic groups where configs must be registered dynamically from plugins or for other reasons.
Installation
pip install confspirator
Usage
First lets put together a simple ConfigGroup, and register some config values:
# ./root_conf.py from confspirator import groups, fields my_root_group = groups.ConfigGroup("my_app") my_root_group.register_child_config( fields.StrConfig("top_level_config", default="some_default")) sub_group = groups.ConfigGroup("sub_section") sub_group.register_child_config(fields.BoolConfig("bool_value")) my_root_group.register_child_config(sub_group)
Now we want to load in our config against this group definition and check the values:
import confspirator from root_conf import my_root_group conf_dict = { "my_app": { "top_level_config": "not_the_default", "sub_section": { "bool_value": True } } } CONF = confspirator.load(my_root_group, conf_dict) print(CONF.top_level_config) print(CONF.sub_section.bool_value)d
TODO
reader logic for reading in data from yaml, json and ini files.
exporting an example config
potential command-line integrations
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file confspirator-0.1.6.tar.gz
.
File metadata
- Download URL: confspirator-0.1.6.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42530258b80d830d7eb67861691087a6bce0ab699ef8624fd50ace10f2a499cc |
|
MD5 | 2ce64b2e4a2daf01fac3a0d95a91a456 |
|
BLAKE2b-256 | d73b064e28e79f32cd6017fadfdb8c2f6222b74fb3f0c9c2e568ef7fb1030460 |