skillfed

HiYaPyCo

Hierarchical Yaml Python Config

hiyapyco v0.7.0 225.8K downloads/30d#9,214 on PyPI117
Copyleft license GPLv3 Active released

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 hiyapyco

uv

uv add hiyapyco

poetry

poetry add hiyapyco

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: System AdministratorsLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Programming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.9

Tags

yaml config file merginghierarchical configuration overlayyaml variable interpolationmultiple yaml files mergejinja2 config templatingdeep merge yamlconfiguration management python
configuration-managementyaml-processing

More Software Development packages