Skip to main content

A YAML template engine with Python expressions

Project description

YTE - A YAML template engine with Python expressions

Docs test coverage: 100% GitHub Workflow Status PyPI Conda Recipe Conda Downloads Conda Version

YTE is a template engine for YAML format that utilizes the YAML structure in combination with Python expressions for enabling to dynamically build YAML documents.

The key idea of YTE is to rely on the YAML structure to enable conditionals, loops and other arbitrary Python expressions to dynamically render YAML files. Python expressions are thereby declared by prepending them with a ? anywhere in the YAML. Any such value will be automatically evaluated by YTE, yielding plain YAML as a result. Importantly, YTE templates are still valid YAML files (for YAML, the ? expressions are just strings).

Documentation of YTE can be found at https://yte-template-engine.github.io.

Comparison with other engines

Lots of template engines are available, for example the famous generic jinja2. The reasons to generate a YAML specific engine are

  1. The YAML syntax can be exploited to simplify template expression syntax, and make it feel less foreign (i.e. fewer special characters for control flow needed) while increasing human readability.
  2. Whitespace handling (which is important with YAML since it has a semantic there) becomes unnecessary (e.g. with jinja2, some tuning is required to obtain proper YAML rendering).

Of course, YTE is not the first YAML specific template engine. Others include

The main difference between YTE and these two is that YTE extends YAML with plain Python syntax instead of introducing another specialized language. Of course, the choice is also a matter of taste.

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

yte-1.9.4.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

yte-1.9.4-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file yte-1.9.4.tar.gz.

File metadata

  • Download URL: yte-1.9.4.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for yte-1.9.4.tar.gz
Algorithm Hash digest
SHA256 86a47e6d722cec9419a7ac88be57d0d6c4ce28f02860393b71a66f2c674069f6
MD5 2ae018ef1f53b03fd022e1d71e372daa
BLAKE2b-256 44f57e44620e6e077bfe624b9a17c329b8e0d0159e176e1f1a93c2790428ab2c

See more details on using hashes here.

File details

Details for the file yte-1.9.4-py3-none-any.whl.

File metadata

  • Download URL: yte-1.9.4-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for yte-1.9.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5dac63303d3e6bc2ebadc36ece3c3fb09343772fe6e25e9356d9baf8f9dfaf6d
MD5 d612caeb0e9343a2594e9485a4bfca06
BLAKE2b-256 4d636a44729fdc60eb255a7b156a84e7552290174a9bf151e3b6c18e83d6fbfa

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