HiYaPyCo
Hierarchical Yaml Python Config
What it is and what it does
HiYaPyCo is a Python library for managing configuration through hierarchical overlay of YAML files. It reads multiple YAML files and merges them according to a chosen strategy (simple replacement, deep merge, or list substitution), then optionally interpolates variables using Jinja2 templates. The library is designed to replicate Puppet's Hiera-style configuration management for Python applications.
The package depends on PyYAML for YAML parsing and Jinja2 for template variable substitution. It preserves dictionary ordering during load and merge operations, which is important for interpolation to work correctly. Configuration can be loaded from files or YAML strings, and the merge behavior is customizable through method selection and callback functions.
Use it for:
- Manage environment-specific configuration by layering base, environment, and host-level YAML files in order.
- Build templated configuration where values reference other config keys using Jinja2 syntax (e.g., `{{ first }}`)
- Merge default application settings with user overrides while preserving nested structure integrity.
- Load configuration from multiple sources (files or strings) and combine them into a single OrderedDict.
- Customize merge behavior for primitive values or use alternative YAML loaders via callback functions.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Loads and merges multiple YAML configuration files hierarchically with variable interpolation via Jinja2, supporting different merge strategies.
Yes, if you need hierarchical YAML configuration merging with templating. The package is stable (Production/Stable classifier), actively maintained, has no known vulnerabilities, and low install friction. The GPLv3 license is a blocker only if you cannot distribute under copyleft terms. It is well-suited for application configuration management but adds a dependency for a focused use case—evaluate whether built-in config tools or simpler alternatives meet your needs first.
Install
hiyapyco on PyPI
pip
pip install hiyapycouv
uv add hiyapycopoetry
poetry add hiyapycoInstalling HiYaPyCo
Before you install
Low friction: pure Python wheel with only three runtime dependencies (Jinja2, MarkupSafe, PyYAML). Actively maintained with recent commits; last release 663 days ago but repository shows ongoing activity.
License in practice
GPLv3 copyleft license requires that any derivative work or distribution be licensed under GPLv3 or later. Acceptable for open-source projects but incompatible with proprietary software unless you obtain a separate license.
Quickstart
import hiyapyco
conf = hiyapyco.load('config1.yaml', 'config2.yaml', method=hiyapyco.METHOD_MERGE, interpolate=True)
print(hiyapyco.dump(conf, default_flow_style=False))
Verify before relying
- Whether the package supports Python versions beyond 3.9 and 3.11 (classifiers list only these two tested versions).
- Current test coverage and stability guarantees for edge cases in deep merge and interpolation logic.
Package facts
| License | GPLv3 (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — Jinja2, MarkupSafe, PyYAML |
| Maintenance | actively maintained — 663 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 225,756/month — #9,214 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: HiYaPyCo-0.7.0-py2.py3-none-any.whl
Keywords: configuration, parser, yaml
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
dynamic-yamlAdds dynamic string interpolation to YAML…
permissive · top 15,000 on PyPI
hierarchical-confLoads configuration from YAML files organized…
unclear · top 15,000 on PyPI
pyhoconParses HOCON (Human-Optimized Config Object…
permissive · top 5,000 on PyPI
HyperPyYAMLExtends YAML syntax with Python-friendly…
permissive · top 5,000 on PyPI
yamlloaderProvides specialized loaders and dumpers for…
permissive · top 15,000 on PyPI
pyaml-envParses YAML configuration files and resolves…
permissive · top 15,000 on PyPI
anyconfigLoads, dumps, and merges configuration files in…
permissive · top 15,000 on PyPI
pyymlEmbeds Python expressions directly in YAML…
permissive · top 15,000 on PyPI
aspy.yamlProvides order-preserving YAML loading and…
permissive · top 15,000 on PyPI
yamlordereddictloaderProvides YAML loaders and dumpers for PyYAML…
permissive · top 15,000 on PyPI