Skip to main content

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.Subview instead of global Subview

Metadata

Release files for confuse-jinja 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for confuse-jinja 0.0.1
File Size Uploaded
confuse_jinja-0.0.1.tar.gz 3.9 kB Details

Release files / confuse_jinja-0.0.1.tar.gz

Download URL confuse_jinja-0.0.1.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
71cd0a37483faa356d38287bd626591148f9eaea20742144bc2f6c49fd616aa5
BLAKE2b-256 checksum
How to use checksums
d1c1269c3391e617ad42d79dcc6fe410fc9fdf07a138157ca59c846a86be9721
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page