yte
A YAML template engine with Python expressions
Decision gist · record as of 2026-08-14
Yes, if you need to template YAML files and prefer Python expressions over a separate templating language. The low install friction, permissive license, and lack of security vulnerabilities make it a safe choice. The aging maintenance status is a minor concern—the project is stable and unarchived, but verify that the feature set and performance meet your needs before adopting it for critical workflows.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later (supports current versions up to Python 3.x).
- Low install friction with a pure-Python wheel.
- Maintenance status is aging—last release was 260 days ago—but the repository remains active and unarchived, suggesting the project is stable rather than abandoned.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
last release 2025-11-27 (260 days) · last repo commit 2025-11-27 · 44 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 168,818 downloads/mo, #10,434 on PyPI
Alternatives
Verify before relying
pip install yte
import yte
rendered = yte.render_string('key: ? 1 + 1')
print(rendered) # key: 2- Whether YTE's performance is suitable for large or deeply nested YAML files.
- How error messages and debugging experience compare to other YAML template engines.
- Whether the package is actively maintained or in maintenance-only mode given the 260-day gap since last release.
What it is and what it does
YTE is a template engine purpose-built for YAML that lets you embed Python expressions directly into YAML files to generate dynamic configurations. Instead of learning a separate templating syntax, you mark Python expressions with a `?` prefix anywhere in your YAML, and YTE evaluates them to produce plain YAML output. The key advantage is that YTE templates remain valid YAML files themselves—the `?` expressions are just strings to the YAML parser—and whitespace handling works naturally without the tuning required by generic engines like Jinja2.
The package depends on argparse-dataclass, dpath, and pyyaml to parse command-line arguments, navigate nested data structures, and handle YAML serialization. It's designed for developers who want to avoid learning a new templating language and prefer to write Python expressions in their YAML configurations instead.
Use it for
- Generate Kubernetes manifests or Docker Compose files with conditional blocks and loops based on deployment environment.
- Build configuration files for infrastructure-as-code tools where Python logic simplifies conditional sections.
- Template CI/CD pipeline definitions (GitHub Actions, GitLab CI) with dynamic job matrices and conditional steps.
- Create parameterized YAML schemas for application config where expressions compute derived values.
- Preprocess YAML data files with Python logic before passing them to downstream tools.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to template YAML files and prefer Python expressions over a separate templating language.
The low install friction, permissive license, and lack of security vulnerabilities make it a safe choice. The aging maintenance status is a minor concern—the project is stable and unarchived, but verify that the feature set and performance meet your needs before adopting it for critical workflows.
Install
yte on PyPI
Before you install
Low install friction with a pure-Python wheel. Maintenance status is aging—last release was 260 days ago—but the repository remains active and unarchived, suggesting the project is stable rather than abandoned.
Requires Python 3.8 or later (supports current versions up to Python 3.x).
License in practice
MIT license is permissive, allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install yte
import yte
rendered = yte.render_string('key: ? 1 + 1')
print(rendered) # key: 2
Verify before relying
- Whether YTE's performance is suitable for large or deeply nested YAML files.
- How error messages and debugging experience compare to other YAML template engines.
- Whether the package is actively maintained or in maintenance-only mode given the 260-day gap since last release.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesargparse-dataclassdpathpyyaml |
| Maintenance | Aging 260 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 168,818 / month, #10,434 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: yte-1.9.4-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “yaml template engine”
- yteYTE is a YAML template engine that embeds Python expressions directly…
- jinja-cliA command-line tool that renders Jinja2 templates with data from…
- jinjanatorA command-line tool that renders Jinja2 templates using data from…
Give your agent the search over MCP, or paste the wish link into any chat.
More Markup packages
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
A Python markdown parser that converts markdown to HTML following the CommonMark specification, with support for plugins and custom syntax rules.
Install it if you need reliable markdown-to-HTML conversion.
Beautiful Soup parses HTML and XML documents into a navigable tree, providing Pythonic methods to search, iterate, and modify the parsed content.
Install it if you need to parse or extract data from markup documents.
et_xmlfile writes large XML files with minimal memory overhead by serializing elements to disk as they are created, rather than holding the entire tree in memory.
Install it if incremental XML writing fits your use case; skip it if your XML documents are small or you already use lxml.
Parses and edits TOML files while preserving formatting, comments, and structure, then serializes them back with layout intact.
Install it if you're building tools that touch TOML files and user readability of the source matters.
Parses Python docstrings in ReST, Google, Numpydoc, and Epydoc formats, extracting structured information like descriptions, parameters, return types, and exceptions.
Install it if you need to programmatically read and extract structured data from Python docstrings.
See also pyyml · ruamel.yaml.jinja2 · Jinja2 · Tempita · mkdocs-markdownextradata-plugin · empy · sphinxcontrib.datatemplates · zope.pagetemplate · dynamic-yaml · jinjanator