ruamel.yaml
ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order
Install
ruamel-yaml on PyPI
pip
pip install ruamel-yamluv
uv add ruamel-yamlpoetry
poetry add ruamel-yamlPackage 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
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
Similar packages
permissive · top 1,000 on PyPI
strictyamlpermissive · top 1,000 on PyPI
PyYAMLpermissive · top 100 on PyPI
pyspnegopermissive · top 1,000 on PyPI
zeeppermissive · top 1,000 on PyPI
pyeepermissive · top 1,000 on PyPI
python-magicpermissive · top 1,000 on PyPI
mergedeeppermissive · top 1,000 on PyPI
apache-airflow-providers-googlepermissive · top 1,000 on PyPI
pytest-json-ctrfpermissive · top 1,000 on PyPI