--- id: hiyapyco version: "0.7.0" license: GPLv3 license_treatment: copyleft maintenance: active --- # HiYaPyCo — Hierarchical Yaml Python Config License: copyleft · Maintenance: active · Downloads: 225.8K/mo ## 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 above — 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 pip install hiyapyco uv add hiyapyco 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: unspecified - Install friction: low - Maintenance: active - Downloads: 225.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags yaml config file merging, hierarchical configuration overlay, yaml variable interpolation, multiple yaml files merge, jinja2 config templating, deep merge yaml, configuration management python, configuration-management, yaml-processing [View on SkillFed](https://skillfed.io/packages/hiyapyco) · [View on PyPI](https://pypi.org/project/hiyapyco/)