skillfed

ruamel.yaml

ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order

ruamel-yaml Permissive license MIT AGING v0.19.1 released

Install

ruamel-yaml on PyPI

pip

pip install ruamel-yaml

uv

uv add ruamel-yaml

poetry

poetry add ruamel-yaml

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance aging — 223 days since the last release
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: ruamel_yaml-0.19.1-py3-none-any.whl

Keywords: yaml, 1.2, parser, round-trip, preserve, quotes, order, config

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries :: Python ModulesTopic :: Text Processing :: MarkupTyping :: Typed

About ruamel.yaml

from the package's own PyPI description — quoted content, verbatim

ruamel.yaml

ruamel.yaml is a YAML 1.2 loader/dumper package for Python.

version 0.19.0
updated 2025-01-02
documentation https://yaml.dev/doc/ruamel.yaml
repository https://sourceforge.net/projects/ruamel-yaml
pypi https://pypi.org/project/ruamel.yaml

breaking changes, that may make future uploads to PyPI impossible

If you are interested in future upgrades of ruamel.yaml please check the documentation on installing, since at some point I might not be able to upload a new version to PyPI with updated information.

ruamel.yaml was intentionally named as yaml in a namespace ruamel. The namespace allows the installation name to correspond unchanged to how the package is imported, reduces the number of links I have to create in site-packages of a Python install during development, as well as providing a recognisable set of packages my company releases to the public.

However, after uploading version 0.18.7, I got an email from PyPI, about having to change the project name to ruamel_yaml to comply with PEP 625, sometime in the future. The email doesn't say if namespace...

Read as markdown · JSON record · Source repository · Homepage · Docs

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

ruamel.yaml is a YAML 1.2 parser and emitter that loads and dumps YAML while preserving comments, formatting, key order, and quoting style—useful for configuration files and data interchange where round-trip fidelity matters.

Installation is low-friction; the package ships as a pure-Python wheel with no runtime dependencies. However, maintenance status is aging (223 days since last release), and the description notes potential future PyPI compliance issues related to namespace package naming that could affect future upgrades.

ruamel.yaml is licensed under MIT, a permissive license that allows commercial and private use with minimal restrictions, making it safe for most projects.

Usage

pip install ruamel.yaml

from ruamel.yaml import YAML

yaml = YAML(typ='rt')
data = yaml.load('key: value')
yaml.dump(data, None)

Requires Python 3.9 or later (supports 3.9–3.14). Optional C-based extensions (ruamel.yaml.clibz or ruamel.yaml.clib) require setuptools and wheels pre-installed if you want performance optimization, but the pure-Python default mode works without them.

Verdict: ruamel.yaml is a mature, well-maintained YAML parser with strong round-trip preservation and no security vulnerabilities. Its MIT license and low install friction make it a solid choice for configuration and data-interchange tasks. The aging maintenance status and noted future PyPI compliance uncertainty warrant pinning the version in production; users should monitor the project for updates, particularly around the announced namespace package changes.

Needs verification

  • Whether the future PyPI compliance issue (PEP 625 namespace package rename) will actually block future releases or require a migration path
  • Performance characteristics of the pure-Python implementation versus optional C extensions for large YAML files
  • Whether the optional libyaml extensions (ruamel.yaml[libyaml] or ruamel.yaml[oldlibyaml]) are actively maintained and tested
yaml parser pythonround-trip yaml preservationyaml loader with commentsyaml config file readerpreserve yaml formattingyaml 1.2 parseryaml emitter python

Similar packages