Skip to main content

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

Project description

ruamel.yaml

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

Starting with version 0.15.0 the way YAML files are loaded and dumped is changing. See the API doc for details. Currently existing functionality will throw a warning before being changed/removed. For production systems you should pin the version being used with ``ruamel.yaml<=0.15``. There might be bug fixes in the 0.14 series, but new functionality is likely only to be available via the new API.

If your package uses ruamel.yaml and is not listed on PyPI, drop me an email, preferably with some infomormation on how you use the package (or a link to bitbucket/github) and I’ll keep you informed when the status of the API is stable enough to make the transition.

https://readthedocs.org/projects/yaml/badge/?version=stable

ChangeLog

0.15.0 (2017-06-04):
  • it is no allowed to pass in a pathlib.Path as “stream” parameter to all load/dump functions

  • passing in a non-supported object (e.g. a string) as “stream” will result in a much more meaningful YAMLStreamError.

  • assigning a normal string value to an existing CommentedMap key or CommentedSeq element will result in a value cast to the previous value’s type if possible.

  • added YAML class for new API

0.14.12 (2017-05-14):
  • fix for issue 119, deepcopy not returning subclasses (reported and PR by Constantine Evans <cevans@evanslabs.org>)

0.14.11 (2017-05-01):
  • fix for issue 103 allowing implicit documents after document end marker line (...) in YAML 1.2

0.14.10 (2017-04-26):
  • fix problem with emitting using cyaml

0.14.9 (2017-04-22):
0.14.8 (2017-04-19):
  • fix Text not available on 3.5.0 and 3.5.1, now proactively setting version guards on all files (reported by João Paulo Magalhães)

0.14.7 (2017-04-18):
  • round trip of integers (decimal, octal, hex, binary) now preserve leading zero(s) padding and underscores. Underscores are presumed to be at regular distances (i.e. 0o12_345_67 dumps back as 0o1_23_45_67 as the space from the last digit to the underscore before that is the determining factor).

0.14.6 (2017-04-14):
  • binary, octal and hex integers are now preserved by default. This was a known deficiency. Working on this was prompted by the issue report (112) from devnoname120, as well as the additional experience with .replace() on scalarstring classes.

  • fix issues 114: cannot install on Buildozer (reported by mixmastamyk). Setting env. var RUAMEL_NO_PIP_INSTALL_CHECK will suppress pip-check.

0.14.5 (2017-04-04):
  • fix issue 109: None not dumping correctly at top level (reported by Andrea Censi)

  • fix issue 110: .replace on Preserved/DoubleQuoted/SingleQuoted ScalarString would give back “normal” string (reported by sandres23)

0.14.4 (2017-03-31):
  • fix readme

0.14.3 (2017-03-31):
0.14.2 (2017-03-23):
  • fix for old default pip on Ubuntu 14.04 (reported by Sébastien Maccagnoni-Munch)

0.14.1 (2017-03-22):
  • fix Text not available on 3.5.0 and 3.5.1 (reported by Charles Bouchard-Légaré)

0.14.0 (2017-03-21):
  • updates for mypy –strict

  • preparation for moving away from inheritance in Loader and Dumper, calls from e.g. the Representer to the Serializer.serialize() are now done via the attribute .serializer.serialize(). Usage of .serialize() outside of Serializer will be deprecated soon

  • some extra tests on main.py functions

0.13.14 (2017-02-12):
  • fix for issue 97: clipped block scalar followed by empty lines and comment would result in two CommentTokens of which the first was dropped. (reported by Colm O’Connor)

0.13.13 (2017-01-28):
  • fix for issue 96: prevent insertion of extra empty line if indented mapping entries are separated by an empty line (reported by Derrick Sawyer)

0.13.11 (2017-01-23):
  • allow ‘:’ in flow style scalars if not followed by space. Also don’t quote such scalar as this is no longer necessary.

  • add python 3.6 manylinux wheel to PyPI

0.13.10 (2017-01-22):
  • fix for issue 93, insert spurious blank line before single line comment between indented sequence elements (reported by Alex)

0.13.9 (2017-01-18):
  • fix for issue 92, wrong import name reported by the-corinthian

0.13.8 (2017-01-18):
  • fix for issue 91, when a compiler is unavailable reported by Maximilian Hils

  • fix for deepcopy issue with TimeStamps not preserving ‘T’, reported on StackOverflow Q&A by Quuxplusone

0.13.7 (2016-12-27):
  • fix for issue 85, constructor.py importing unicode_literals caused mypy to fail on 2.7 (reported by Peter Amstutz)

0.13.6 (2016-12-27):
  • fix for issue 83, collections.OrderedDict not representable by SafeRepresenter (reported by Frazer McLean)

0.13.5 (2016-12-25):
  • fix for issue 84, deepcopy not properly working (reported by Peter Amstutz)

0.13.4 (2016-12-05):
  • another fix for issue 82, change to non-global resolver data broke implicit type specification

0.13.3 (2016-12-05):
  • fix for issue 82, deepcopy not working (reported by code monk)

0.13.2 (2016-11-28):
  • fix for comments after empty (null) values (reported by dsw2127 and cokelaer)

0.13.1 (2016-11-22):
  • optimisations on memory usage when loading YAML from large files (py3: -50%, py2: -85%)

0.13.0 (2016-11-20):
  • if load() or load_all() is called with only a single argument (stream or string) a UnsafeLoaderWarning will be issued once. If appropriate you can surpress this warning by filtering it. Explicitly supplying the Loader=ruamel.yaml.Loader argument, will also prevent it from being issued. You should however consider using safe_load(), safe_load_all() if your YAML input does not use tags.

  • allow adding comments before and after keys (based on StackOveflow Q&A by msinn)


For older changes see the file CHANGES

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ruamel.yaml-0.15.0.tar.gz (247.4 kB view details)

Uploaded Source

Built Distributions

ruamel.yaml-0.15.0-cp36-cp36m-manylinux1_x86_64.whl (547.2 kB view details)

Uploaded CPython 3.6m

ruamel.yaml-0.15.0-cp35-cp35m-manylinux1_x86_64.whl (547.0 kB view details)

Uploaded CPython 3.5m

ruamel.yaml-0.15.0-cp34-cp34m-manylinux1_x86_64.whl (553.6 kB view details)

Uploaded CPython 3.4m

ruamel.yaml-0.15.0-cp33-cp33m-manylinux1_x86_64.whl (527.7 kB view details)

Uploaded CPython 3.3m

ruamel.yaml-0.15.0-cp27-cp27mu-manylinux1_x86_64.whl (523.8 kB view details)

Uploaded CPython 2.7mu

ruamel.yaml-0.15.0-cp27-cp27m-manylinux1_x86_64.whl (523.8 kB view details)

Uploaded CPython 2.7m

File details

Details for the file ruamel.yaml-0.15.0.tar.gz.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0.tar.gz
Algorithm Hash digest
SHA256 f9f4a50422acf4a6ab55b568ae879b3ceb62e8e62a60022cb88816c17e40782e
MD5 4a026b8406cde1f18641870c62683dfb
BLAKE2b-256 10aaf31c8a858e23fe5b14c59e6a03ae80b4cb76353c184df48a582a55eb2674

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b03ac00d603e30f7a030eb2ac69787313051f6fa0c84ca09ea461fb5f67b749b
MD5 a192357b830532ee800563ec2543e2c8
BLAKE2b-256 d40113c17da38beeb4a53f4db875b5d19298d24ddf9c6101821e9737f87b98c2

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 95371af26123c5c3a2f0a121444cf5197d3e6dac83ba76a2351499c328694471
MD5 8492169e0573103efcc054ec11c433a2
BLAKE2b-256 da13ea1488edd9e8fc52a513e69b8101dc3543845b16f85853f14bc7c289c6d7

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.0-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ab2dd4a86816d14027bb11ad2e41a2e59114bc48c9f9f27994b3598ccb00683e
MD5 3ffe2e88dada2996b1eb202d15f5b4be
BLAKE2b-256 9f694f9a49e1fa0e6b9211d1e6b38b156997649f7d09e951d40ac6b07521e0e6

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.0-cp33-cp33m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0-cp33-cp33m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 16520c1da7a02b02df711791dfd72e9a6709f842ecab0ffcb5f0781586fad665
MD5 d902a919690d940b7473604bc732e3f2
BLAKE2b-256 b7fa2385f317a800740cfdd517478e54fe4c1ef6f7de485b07484c9b86dc3ac5

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.0-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 20d239c8e61905debb85979acb0773b261651fdb2422a796e61d25ba9852ad03
MD5 3bf3f1c81ec8e8a5a3be94bc5b0e2827
BLAKE2b-256 dfe6e3f5b3b02282dd96ea685b7b018a05c3575addd5674faca2542d536f8269

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.0-cp27-cp27m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.0-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b0bcd8d11bd06fc041a72e95f7bb0769483f20b3fdbefc252a3643d0b74e0bd3
MD5 d9295805b5d2b95c97cc898ff436d3e2
BLAKE2b-256 f33e53746f742e5ce71b17d31724fd9622a05e4132c5f87d77a050b6beabf90b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page