skillfed

poyo

A lightweight YAML Parser for Python. 🐓

poyo v0.5.0 276.7K downloads/30d#8,160 on PyPI140
Permissive license MIT Abandoned released

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 poyo

uv

uv add poyo

poetry

poetry add poyo

Installing 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

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

Tags

lightweight yaml parsersafe yaml parsingyaml to dictminimal yaml readercookiecutter config parseryaml without deserializationsimple yaml loader
yaml-parserconfig-parsingcookiecutter

More Markup packages