HyperPyYAML
Extensions to YAML syntax for better python interaction
Decision gist · record as of 2026-08-14
Yes, if you manage hyperparameter-heavy projects and want cleaner, more maintainable config files. The low install friction, permissive license, and active repository make it a safe choice. Be aware that loading YAML executes arbitrary Python code—audit any untrusted configs. Aging maintenance status suggests stable rather than rapidly evolving, which is appropriate for a focused utility.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Loading untrusted YAML files allows arbitrary code execution—verify all YAML sources before loading, as documented in the package's security note.
- Low friction—pure Python wheel with just two YAML library dependencies (pyyaml and ruamel.yaml).
- Last release was recent; repo is active and not archived, though maintenance status is aging.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache 2.0 (permissive). No restrictions on commercial or private use; attribution required but no copyleft obligations.
last release 2026-01-01 (225 days) · last repo commit 2026-01-01 · 80 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,852,618 downloads/mo, #3,492 on PyPI
Alternatives
Verify before relying
pip install hyperpyyaml
from hyperpyyaml import load_hyperpyyaml
yaml_str = """model: !new:collections.Counter
folder: abc/def
ref_folder: !ref /"""
config = load_hyperpyyaml(yaml_str)
print(config['model'])- Whether the package works with all modern Python versions (requires_python is unspecified in metadata).
- Current maintenance velocity and whether aging status indicates reduced active development or stable maintenance.
What it is and what it does
HyperPyYAML is a YAML extension library that adds Python-specific syntax to make configuration files more expressive and less repetitive. It lets you instantiate Python objects directly in YAML using `!new:` tags, define reusable references with `!ref` that support string interpolation and nested lookups, and implicitly parse tuples from parenthesized strings. The package depends on pyyaml and ruamel.yaml as runtime dependencies.
It's designed for data-analysis workflows where hyperparameters need to be easily examined, modified, and cross-referenced without cluttering Python code. You load a YAML file with `load_hyperpyyaml()`, optionally override values at runtime, and get back a fully-constructed configuration object with all references resolved and objects instantiated. The trade-off is that loading YAML allows arbitrary code execution—a feature, not a bug, but one that requires you to trust or audit any YAML files you load.
Use it for
- Define machine-learning experiment hyperparameters in YAML with cross-references that auto-update when you change a base value.
- Instantiate complex nested objects (models, counters, custom classes) directly in configuration files without Python boilerplate.
- Override specific hyperparameters at runtime (e.g., learning rate, batch size) without editing the YAML file itself.
- Share reproducible experiment configs that reference each other and compute derived values via interpolation.
- Avoid scattering magic numbers and object constructors throughout Python analysis code by centralizing them in a single YAML file.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you manage hyperparameter-heavy projects and want cleaner, more maintainable config files.
The low install friction, permissive license, and active repository make it a safe choice. Be aware that loading YAML executes arbitrary Python code—audit any untrusted configs. Aging maintenance status suggests stable rather than rapidly evolving, which is appropriate for a focused utility.
Install
hyperpyyaml on PyPI
Before you install
Low friction—pure Python wheel with just two YAML library dependencies (pyyaml and ruamel.yaml). Last release was recent; repo is active and not archived, though maintenance status is aging.
Loading untrusted YAML files allows arbitrary code execution—verify all YAML sources before loading, as documented in the package's security note.
License in practice
Licensed under Apache 2.0 (permissive). No restrictions on commercial or private use; attribution required but no copyleft obligations.
Quickstart
pip install hyperpyyaml
from hyperpyyaml import load_hyperpyyaml
yaml_str = """model: !new:collections.Counter
folder: abc/def
ref_folder: !ref /"""
config = load_hyperpyyaml(yaml_str)
print(config['model'])
Verify before relying
- Whether the package works with all modern Python versions (requires_python is unspecified in metadata).
- Current maintenance velocity and whether aging status indicates reduced active development or stable maintenance.
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagespyyamlruamel.yaml |
| Maintenance | Aging 225 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,852,618 / month, #3,492 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3 |
Evidence: hyperpyyaml-1.2.3-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 hyperparameter configuration”
- HyperPyYAMLExtends YAML syntax with Python-friendly features like object…
- yacsYACS is a lightweight configuration management system that lets you…
- kubeflowKubeflow SDK provides Python APIs to submit and manage distributed AI…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also aspy.yaml · yamlpath · HiYaPyCo · PyYAML · pyyaml-include · yacs · rapidyaml · oyaml · pyaml · dynamic-yaml