Skip to main content

Injinja: Injectable Jinja Configuration tool. Insanely configurable... config system.

Project description

injinja 🥷

Latest Release Build Status Coverage

Injinja: Injectable Jinja Configuration tool.

Insanely configurable... config system.

Features

  • Recursive Deep Merge: Sick of scrolling big fat mega config files? Would you rather have organised folders of smaller configs that act like they are part of the same big config? We recursively deep merge your config.
  • Powerful: Any of your config files are now empowered with the full programming capabilities of Jinja templating engine for better parametrising the one set of config files.
  • Flexible: You design your configuration schema yourself in any of JSON, YAML or TOML.
  • Enabling: Separate your project config out to allow "Drive By Contributors". Even non-technical colleagues can edit a text file in a browser to raise a PR.
  • Nothing Implicit: By design nothing is implicit and every input is explicit. We prefer powerful tools rather than "magic" tools.

Quickstart

uvx injinja -e home_dir="$HOME" -c 'samples/config/*' -t sql/ddl/warehouse__roles.sql.j2
# OR
uv run injinja.py -e home_dir="$HOME" -c 'samples/config/*' -t sql/ddl/warehouse__roles.sql.j2

Two step templating configuration system:

  • Runtime DYNAMIC configuration (-e or --env)
  • Can template the STATIC configuration (-c or --config)
  • To allow deep and rich config to populate your TEMPLATE file (-t or --template).

Simplified Architecture

Overview Diagram

  1. Dynamic Configuration: Environment variables and CLI flags provide runtime values
  2. Static Configuration: YAML/JSON/TOML files that can themselves be Jinja templates
  3. Schema Validation: Validate merged configuration against schemas before templating
  4. Template Rendering: Apply the validated configuration to your target template

Documentation

Please read our User Guide Documentation

Roadmap and TODO list

Open Issues that are raised by neozenith

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

injinja-1.1.0rc1-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file injinja-1.1.0rc1-py3-none-any.whl.

File metadata

  • Download URL: injinja-1.1.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.15

File hashes

Hashes for injinja-1.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 9256f81f12b2e9d2a2440a30357b59e7a6d04318690818cc5aa3937b30e301fa
MD5 b54547e0e59a94b9f4ad3f6c305f56d2
BLAKE2b-256 29b404554c399692ce650e16c3fb7d3a40c2caa6496ad2491456d18f91ad39db

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