No project description provided
Project description
Confuse - Jinja Variables
Simple Ansible-style variable parsing for Confuse config files using Jinja2.
Install
pip install confuse_jinja
Usage
import confuse_jinja
confuse_jinja.enable()
# now you can use jinja2 templates inside your keys
config = confuse.Configuration('asdf', read=False)
config.set({
'asdf': {
'blah': 'asdf{{ C.other.thing }}'
},
'nested': '{{ C.asdf }}',
'other': {'thing': 456}
})
assert config['asdf']['blah'].get() == 'asdf456'
assert config['nested'].get() == {'blah': 'asdf456'}
How it works
- for any config values that are a string, render it as a jinja2 template
- try to parse rendered string as python using ast functions graciously pulled from ansible's source code
- if a valid python object (list, dict, etc.) can be parsed from the string the object will be returned, otherwise it will return as a string.
TODO:
- test in a yaml file (possible syntax errors)
- enable on a config-by-config object basis instead of globally.
- would need to replace
ConfigView.__getitem__for a single Config - would require using
self.Subviewinstead of globalSubview
- would need to replace
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
confuse_jinja-0.0.1.tar.gz
(3.9 kB
view details)
File details
Details for the file confuse_jinja-0.0.1.tar.gz.
File metadata
- Download URL: confuse_jinja-0.0.1.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71cd0a37483faa356d38287bd626591148f9eaea20742144bc2f6c49fd616aa5
|
|
| MD5 |
ddeb2e0ddd9b4d68793b391f36bb5c24
|
|
| BLAKE2b-256 |
d1c1269c3391e617ad42d79dcc6fe410fc9fdf07a138157ca59c846a86be9721
|