poyo
A lightweight YAML Parser for Python. 🐓
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions, requiring only attribution and inclusion of the license text.
last release 2019-07-26 (2576 days) · last repo commit 2021-09-15 · 140 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 276,664 downloads/mo, #8,160 on PyPI
Alternatives
Verify before relying
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}")- 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)
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 on it.
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
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 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: poyo-0.5.0-py2.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 › “lightweight yaml parser”
- poyoParses a restricted subset of YAML into Python dicts, lists, and…
- yaml-rsA high-performance YAML v1.2 parser for Python, implemented in Rust,…
- envyamlParses YAML configuration files with environment variable…
Give your agent the search over MCP, or paste the wish link into any chat.
More Markup packages
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
A Python markdown parser that converts markdown to HTML following the CommonMark specification, with support for plugins and custom syntax rules.
Install it if you need reliable markdown-to-HTML conversion.
Beautiful Soup parses HTML and XML documents into a navigable tree, providing Pythonic methods to search, iterate, and modify the parsed content.
Install it if you need to parse or extract data from markup documents.
et_xmlfile writes large XML files with minimal memory overhead by serializing elements to disk as they are created, rather than holding the entire tree in memory.
Install it if incremental XML writing fits your use case; skip it if your XML documents are small or you already use lxml.
Parses and edits TOML files while preserving formatting, comments, and structure, then serializes them back with layout intact.
Install it if you're building tools that touch TOML files and user readability of the source matters.
Parses Python docstrings in ReST, Google, Numpydoc, and Epydoc formats, extracting structured information like descriptions, parameters, return types, and exceptions.
Install it if you need to programmatically read and extract structured data from Python docstrings.
See also dirtyjson · yamlloader · yamlable · pycomposefile · jsoncomment · yamlordereddictloader · strictyaml · pyaml · jsons