annotatedyaml
Annotated YAML that supports secrets for Python
What it is and what it does
annotatedyaml is a YAML parser and validator for Python that combines YAML parsing with schema validation and secrets support. It wraps pyyaml for parsing and voluptuous for schema validation, allowing developers to define typed, validated configuration structures in YAML while handling sensitive data securely. The package is in pre-alpha and requires Python 3.13 or later.
The package is designed to handle configuration files that need both structural validation and the ability to reference or embed secrets. It appears to be part of the Home Assistant ecosystem but is published as a standalone library. With significant adoption, its pre-alpha status and recent release date mean the API and behavior may still evolve.
Use it for:
- Validate Home Assistant configuration YAML files with type checking and schema enforcement
- Parse application config files that contain both public settings and secret references
- Define and enforce YAML schema structures using voluptuous validators in Python
- Load and validate typed configuration data from YAML with automatic error reporting
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses and validates YAML files with support for embedded secrets and type annotations, using a schema-based validation approach.
Yes, with conditions. The package is actively maintained and permissively licensed, making it suitable for projects requiring YAML validation with secrets support. However, its pre-alpha status and Python 3.13-only requirement limit adoption; evaluate whether your environment supports Python 3.13 and whether pre-alpha stability is acceptable for your use case. No known vulnerabilities.
Install
annotatedyaml on PyPI
pip
pip install annotatedyamluv
uv add annotatedyamlpoetry
poetry add annotatedyamlInstalling annotatedyaml
Before you install
Medium install friction due to compiled wheels across multiple Python versions and platforms. Active maintenance with recent commits; however, the package is in pre-alpha status (Development Status :: 2) and has been in active development for less than a year, so stability is not yet established.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and private projects with minimal restrictions beyond attribution and liability disclaimers.
Quickstart
pip install annotatedyaml
import annotatedyaml
from voluptuous import Schema, Required
schema = Schema({Required('key'): str})
data = annotatedyaml.load(open('config.yaml'), schema=schema)
Requires Python 3.13 or later; pyyaml, propcache, and voluptuous must be available.
Verify before relying
- How secrets are embedded and retrieved within YAML (encryption method, storage format, or reference mechanism not detailed in excerpt)
- Whether the package integrates with Home Assistant or is usable standalone
- Performance characteristics when validating large YAML files
- Exact validation error messages and debugging experience
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — propcache, pyyaml, voluptuous |
| Maintenance | actively maintained — 314 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 412,147/month — #6,850 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: annotatedyaml-1.0.2-cp313-cp313-macosx_10_13_x86_64.whl; annotatedyaml-1.0.2-cp313-cp313-macosx_11_0_arm64.whl; annotatedyaml-1.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; annotatedyaml-1.0.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; annotatedyaml-1.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; annotatedyaml-1.0.2-cp313-cp313-manylinux_2_36_x86_64.whl; annotatedyaml-1.0.2-cp313-cp313-musllinux_1_2_aarch64.whl; annotatedyaml-1.0.2-cp313-cp313-musllinux_1_2_armv7l.whl; annotatedyaml-1.0.2-cp313-cp313-musllinux_1_2_x86_64.whl; annotatedyaml-1.0.2-cp313-cp313-win32.whl; annotatedyaml-1.0.2-cp313-cp313-win_amd64.whl; annotatedyaml-1.0.2-cp314-cp314-macosx_10_13_x86_64.whl; annotatedyaml-1.0.2-cp314-cp314-macosx_11_0_arm64.whl; annotatedyaml-1.0.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; annotatedyaml-1.0.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; annotatedyaml-1.0.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; annotatedyaml-1.0.2-cp314-cp314-musllinux_1_2_aarch64.whl; annotatedyaml-1.0.2-cp314-cp314-musllinux_1_2_armv7l.whl; annotatedyaml-1.0.2-cp314-cp314-musllinux_1_2_x86_64.whl; annotatedyaml-1.0.2-cp314-cp314t-macosx_10_13_x86_64.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
yamaleYamale validates YAML files against a schema…
permissive · top 5,000 on PyPI
pyaml-envParses YAML configuration files and resolves…
permissive · top 15,000 on PyPI
pykwalifyValidates YAML and JSON data against schemas…
permissive · top 5,000 on PyPI
valohai-yamlParses and validates valohai.yaml configuration…
permissive · top 15,000 on PyPI
strictyamlStrictYAML parses and validates YAML documents…
permissive · top 1,000 on PyPI
saneyamlA lightweight PyYAML wrapper that reads and…
permissive · top 15,000 on PyPI
sphinxcontrib-autoyamlA Sphinx extension that auto-generates…
permissive · top 15,000 on PyPI
yamlpathQuery, retrieve, update, merge, validate, and…
permissive · top 15,000 on PyPI
zcborzcbor validates and converts YAML/JSON/CBOR…
permissive · top 15,000 on PyPI
validate-pyproject-schema-storeProvides a versioned snapshot of SchemaStore…
permissive · top 15,000 on PyPI