poyo
A lightweight YAML Parser for Python. 🐓
What it is and what it does
poyo is a lightweight YAML parser designed specifically to parse cookiecutter user configuration files. It deliberately supports only a subset of YAML—strings, booleans, integers, floats, None, dicts, and lists—and explicitly does not deserialize arbitrary Python objects, making it safer than full YAML parsers for untrusted input. It has no runtime dependencies and can parse YAML strings into Python dicts with support for comments, multiline strings, and basic type inference.
The package was created to solve installation friction that arose when cookiecutter depended on heavier YAML libraries. It is not a general-purpose YAML tool: it cannot serialize to YAML, is not JSON-compatible, and only handles the YAML features needed for configuration files. The parser includes a `parse_string()` function that takes UTF-8 encoded YAML and returns a dict, plus a `PoyoException` for error handling.
Use it for:
- Parse cookiecutter template configuration files without pulling in heavy YAML dependencies
- Load simple YAML-like configuration files in projects where full YAML support is unnecessary
- Parse user configuration in applications that need safe, restricted YAML parsing without object deserialization
- Extract configuration from YAML strings in environments where minimal dependencies are critical
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses a restricted subset of YAML into Python dicts, lists, and basic types without deserializing arbitrary objects.
Yes, but only if you are parsing cookiecutter configs or similarly restricted YAML subsets. The package is stable, has zero dependencies, and carries no known vulnerabilities. However, it is abandoned—last updated 2019-07-26—so do not install it for general YAML parsing or if you need ongoing maintenance. For its narrow, original use case, it remains a lightweight, safe choice.
Install
poyo on PyPI
pip
pip install poyouv
uv add poyopoetry
poetry add poyoInstalling poyo
Before you install
Installation is frictionless with no runtime dependencies. However, the package is abandoned—last release was 2019-07-26 and last commit 2021-09-15. It remains stable for its narrow use case but will not receive updates or security patches.
License in practice
MIT license permits commercial and private use with minimal restrictions, requiring only attribution and inclusion of the license text.
Quickstart
from poyo import parse_string, PoyoException
yaml_string = """---
greeting: hello
docs: true
"""
try:
config = parse_string(yaml_string)
print(config)
except PoyoException as exc:
print(f"Parse error: {exc}")
Verify before relying
- Whether the restricted YAML subset is sufficient for your specific configuration format
- Compatibility with Python versions beyond 3.7 (classifiers list 3.7 as the highest tested version)
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,576 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 276,664/month — #8,160 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: poyo-0.5.0-py2.py3-none-any.whl
Keywords: YAML, parser, cookiecutter
Tags
More Markup packages
PyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
markdown-it-pyA Python markdown parser that converts markdown…
permissive · top 100 on PyPI
beautifulsoup4Beautiful Soup parses HTML and XML documents…
permissive · top 100 on PyPI
et-xmlfileet_xmlfile writes large XML files with minimal…
permissive · top 1,000 on PyPI
tomlkitParses and edits TOML files while preserving…
permissive · top 1,000 on PyPI
docstring-parserParses Python docstrings in ReST, Google,…
permissive · top 1,000 on PyPI
dirtyjsonParses JSON-like data from files containing…
permissive · top 5,000 on PyPI
yamlloaderProvides specialized loaders and dumpers for…
permissive · top 15,000 on PyPI
yamlableConverts Python objects to YAML and back using…
permissive · top 15,000 on PyPI
pycomposefileParses and deserializes Docker Compose files…
permissive · top 5,000 on PyPI
jsoncommentParses JSON with comments, multiline strings,…
permissive · top 15,000 on PyPI
yamlordereddictloaderProvides YAML loaders and dumpers for PyYAML…
permissive · top 15,000 on PyPI
strictyamlStrictYAML parses and validates YAML documents…
permissive · top 1,000 on PyPI
pyamlProduces human-readable, diff-friendly YAML…
permissive · top 5,000 on PyPI
jsonsConverts Python objects (dataclasses, attrs…
permissive · top 5,000 on PyPI