hierarchical configuration
Project description
ConfigChain
The key feature of ConfigChain, is the ability to dynamically create a hierarchical configuration by composition and override it through config files and the command line.
- Installation :
pip install configchain --upgrade
Usage
from configchain import configchain
cs = configchain("./tests/asset/a.yaml", "./tests/asset/b.yaml", name="app-${app}", profile="profile")
print(cs)
... ConfigSet([('app-hello',
Config([('*',
ConfigSnippet([('by', 'tao'),
('env', ['ENV=${profile}', 'PROCESSES=32']),
('at', 'aws'),
('app', 'hello')])),
('test',
ConfigSnippet([('by', 'tao'),
('env',
['ENV=${profile}',
'PROCESSES=32',
'PROCESSES=1']),
('at', 'docker'),
('profile', 'test'),
('app', 'hello')]))])),
('*',
Config([('*',
ConfigSnippet([('by', 'luo'),
('env', ['ENV=${profile}']),
('at', 'aws')])),
('test',
ConfigSnippet([('by', 'luo'),
('env', ['ENV=${profile}']),
('at', 'docker'),
('profile', 'test')]))]))])
a.yaml
by: luo
env:
- ENV=${profile}
at: aws
---
profile: test
at: docker
b.yaml
app: hello
by: tao
env:
- PROCESSES=32
---
profile: test
env:
- PROCESSES=1
License
ConfigChain is licensed under MIT License.
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
configchain-0.3.8.tar.gz
(6.5 kB
view hashes)
Built Distribution
Close
Hashes for configchain-0.3.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2baa645495aa170477d67fd0d3669207ed0ff2a8fd57c36d691d8872acfa7a0b |
|
MD5 | 8a2c68fb8534f14184fcd9f0893e666d |
|
BLAKE2b-256 | d6f3468be4a30d59e9e409576027b1b3faf07c91b9ca03b11f9b85b6760d727e |