Skip to main content

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

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

confuse_jinja-0.0.1.tar.gz (3.9 kB view details)

Uploaded Source

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

Hashes for confuse_jinja-0.0.1.tar.gz
Algorithm Hash digest
SHA256 71cd0a37483faa356d38287bd626591148f9eaea20742144bc2f6c49fd616aa5
MD5 ddeb2e0ddd9b4d68793b391f36bb5c24
BLAKE2b-256 d1c1269c3391e617ad42d79dcc6fe410fc9fdf07a138157ca59c846a86be9721

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page