Skip to main content

injinja 🥷

Latest Release Build Status Coverage

Injinja: Injectable Jinja Configuration tool.

Insanely configurable... config system.

Features

  • Recursive Deep Merge: Sick of scrolling giant 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

Metadata

Release files for injinja 1.1.0

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

Built distribution (wheel)

Table of built distributions (wheels) for injinja 1.1.0
File Interpreter ABI Platform
injinja-1.1.0-py3-none-any.whl Python 3 none any Details

Release files / injinja-1.1.0-py3-none-any.whl

Download URL injinja-1.1.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
11a72d0481164653863f9a93ecdaca17bd8c9ae092cd8a2b839c7453e300f88b
BLAKE2b-256 checksum
How to use checksums
8f0f311bad488641cf3b90febc42ab35342e908e6ec7e768a6dac780d8e61fb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.15

Security for injinja 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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