https://github.com/yaml/pyyaml
Canonical source repository for PyYAML
https://github.com/yaml/pyyaml
python yaml
Last synced: 9 days ago
JSON representation
Canonical source repository for PyYAML
- Host: GitHub
- URL: https://github.com/yaml/pyyaml
- Owner: yaml
- License: mit
- Created: 2011-11-03T05:09:49.000Z (over 14 years ago)
- Default Branch: main
- Last Pushed: 2026-06-17T22:18:20.000Z (about 1 month ago)
- Last Synced: 2026-07-04T11:02:38.097Z (16 days ago)
- Topics: python, yaml
- Language: Python
- Homepage:
- Size: 728 KB
- Stars: 2,908
- Watchers: 51
- Forks: 586
- Open Issues: 349
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
- awesome-python - pyyaml - YAML implementations for Python. (File Format Processing)
- awesome-list - PyYAML - Canonical source repository for PyYAML. (Data Format & I/O / For Python)
- awesome-serialization-deserialization - pyyaml
- awesome-computer-vision-tools - `PyYAML`
- best-of-python - GitHub - 39% open · ⏱️ 25.09.2025): (File Formats)
- fucking-awesome-python - pyyaml - YAML implementations for Python. (File Format Processing)
- awesome-python - PyYAML - A YAML parser and emitter for Python. (Libraries / Core Libraries)
- awesome-starred - pyyaml - Canonical source repository for PyYAML (Python)
README
PyYAML
======
A full-featured YAML processing framework for Python
## Installation
To install, type `python setup.py install`.
By default, the `setup.py` script checks whether LibYAML is installed and if
so, builds and installs LibYAML bindings.
To skip the check and force installation of LibYAML bindings, use the option
`--with-libyaml`: `python setup.py --with-libyaml install`.
To disable the check and skip building and installing LibYAML bindings, use
`--without-libyaml`: `python setup.py --without-libyaml install`.
When LibYAML bindings are installed, you may use fast LibYAML-based parser and
emitter as follows:
>>> yaml.load(stream, Loader=yaml.CLoader)
>>> yaml.dump(data, Dumper=yaml.CDumper)
If you don't trust the input YAML stream, you should use:
>>> yaml.safe_load(stream)
## Testing
PyYAML includes a comprehensive test suite.
To run the complete local test suite, type:
make test
This creates a local Python environment, runs the pure Python tests, builds a
local copy of LibYAML, and then runs the LibYAML extension tests. The local
LibYAML build is pinned by `LIBYAML-REF`, which defaults to `0.2.5`.
To run only one test mode:
make test-python
make test-libyaml
To test with a specific Python version:
make test PYTHON-VERSION=3.13.5
## Further Information
* For more information, check the
[PyYAML homepage](https://github.com/yaml/pyyaml).
* [PyYAML tutorial and reference](http://pyyaml.org/wiki/PyYAMLDocumentation).
* Discuss PyYAML with the maintainers on
Matrix at https://matrix.to/#/#pyyaml:yaml.io or
IRC #pyyaml irc.libera.chat
* Submit bug reports and feature requests to the
[PyYAML bug tracker](https://github.com/yaml/pyyaml/issues).
## License
The PyYAML module was written by Kirill Simonov .
It is currently maintained by the YAML and Python communities.
PyYAML is released under the MIT license.
See the file LICENSE for more details.