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 https://bestpractices.coreinfrastructure.org/projects/1128/badge

ChangeLog

0.15.29 (2017-08-14):
  • fix issue #51: different indents for mappings and sequences (reported by Alex Harvey)

  • fix for flow sequence/mapping as element/value of block sequence with sequence-indent minus dash-offset not equal two.

0.15.28 (2017-08-13):
  • fix issue #61: merge of merge cannot be __repr__-ed (reported by Tal Liron)

0.15.27 (2017-08-13):
  • fix issue 62, YAML 1.2 allows ? and : in plain scalars if non-ambigious (reported by nowox)

  • fix lists within lists which would make comments disappear

0.15.26 (2017-08-10):
  • fix for disappearing comment after empty flow sequence (reported by oit-tzhimmash)

0.15.25 (2017-08-09):
  • fix for problem with dumping (unloaded) floats (reported by eyenseo)

0.15.24 (2017-08-09):
  • added ScalarFloat which supports roundtripping of 23.1, 23.100, 42.00E+56, 0.0, -0.0 etc. while keeping the format. Underscores in mantissas are not preserved/supported (yet, is anybody using that?).

  • (finally) fixed longstanding issue 23 (reported by Antony Sottile), now handling comment between block mapping key and value correctly

  • warn on YAML 1.1 float input that is incorrect (triggered by invalid YAML provided by Cecil Curry)

  • allow setting of boolean representation (false, true) by using: yaml.boolean_representation = [u'False', u'True']

0.15.23 (2017-08-01):
  • fix for round_tripping integers on 2.7.X > sys.maxint (reported by ccatterina)

0.15.22 (2017-07-28):
  • fix for round_tripping singe excl. mark tags doubling (reported and fix by Jan Brezina)

0.15.21 (2017-07-25):
0.15.20 (2017-07-23):
  • wheels for windows including C extensions

0.15.19 (2017-07-13):
  • added object constructor for rt, decorator yaml_object to replace YAMLObject.

  • fix for problem using load_all with Path() instance

  • fix for load_all in combination with zero indent block style literal (pure=True only!)

0.15.18 (2017-07-04):
  • missing pure attribute on YAML useful for implementing !include tag constructor for including YAML files in a YAML file

  • some documentation improvements

  • trigger of doc build on new revision

0.15.17 (2017-07-03):
  • support for Unicode supplementary Plane output (input was already supported, triggered by this Stack Overflow Q&A)

0.15.16 (2017-07-01):
  • minor typing issues (reported and fix provided by Manvendra Singh

  • small doc improvements

0.15.15 (2017-06-27):
0.15.14 (2017-06-25):
  • fix for issue 133, in setup.py: change ModuleNotFoundError to ImportError (reported and fix by Asley Drake)

0.15.13 (2017-06-24):
  • suppress duplicate key warning on mappings with merge keys (reported by Cameron Sweeney)

0.15.12 (2017-06-24):
  • remove fatal dependency of setup.py on wheel package (reported by Cameron Sweeney)

0.15.11 (2017-06-24):
  • fix for issue 130, regression in nested merge keys (reported by David Fee)

0.15.10 (2017-06-23):
  • top level PreservedScalarString not indented if not explicitly asked to

  • remove Makefile (not very useful anyway)

  • some mypy additions

0.15.9 (2017-06-16):
  • fix for issue 127: tagged scalars were always quoted and seperated by a newline when in a block sequence (reported and largely fixed by Tommy Wang)

0.15.8 (2017-06-15):
  • allow plug-in install via install ruamel.yaml[jinja2]

0.15.7 (2017-06-14):
  • add plug-in mechanism for load/dump pre resp. post-processing

0.15.6 (2017-06-10):
  • a set() with duplicate elements now throws error in rt loading

  • support for toplevel column zero literal/folded scalar in explicit documents

0.15.5 (2017-06-08):
  • repeat load() on a single YAML() instance would fail.

0.15.4 (2017-06-08):
  • transform parameter on dump that expects a function taking a string and returning a string. This allows transformation of the output before it is written to stream. This forces creation of the complete output in memory!

  • some updates to the docs

0.15.3 (2017-06-07):
  • No longer try to compile C extensions on Windows. Compilation can be forced by setting the environment variable RUAMEL_FORCE_EXT_BUILD to some value before starting the pip install.

0.15.2 (2017-06-07):
  • update to conform to mypy 0.511: mypy –strict

0.15.1 (2017-06-07):
  • duplicate keys in mappings generate an error (in the old API this change generates a warning until 0.16)

  • dependecy on ruamel.ordereddict for 2.7 now via extras_require

0.15.0 (2017-06-04):
  • it is now 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


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.29.tar.gz (258.8 kB view details)

Uploaded Source

Built Distributions

ruamel.yaml-0.15.29-cp36-cp36m-win_amd64.whl (185.8 kB view details)

Uploaded CPython 3.6mWindows x86-64

ruamel.yaml-0.15.29-cp36-cp36m-win32.whl (171.5 kB view details)

Uploaded CPython 3.6mWindows x86

ruamel.yaml-0.15.29-cp36-cp36m-manylinux1_x86_64.whl (556.5 kB view details)

Uploaded CPython 3.6m

ruamel.yaml-0.15.29-cp35-cp35m-win_amd64.whl (185.8 kB view details)

Uploaded CPython 3.5mWindows x86-64

ruamel.yaml-0.15.29-cp35-cp35m-win32.whl (171.5 kB view details)

Uploaded CPython 3.5mWindows x86

ruamel.yaml-0.15.29-cp35-cp35m-manylinux1_x86_64.whl (556.3 kB view details)

Uploaded CPython 3.5m

ruamel.yaml-0.15.29-cp34-cp34m-win_amd64.whl (188.6 kB view details)

Uploaded CPython 3.4mWindows x86-64

ruamel.yaml-0.15.29-cp34-cp34m-win32.whl (177.7 kB view details)

Uploaded CPython 3.4mWindows x86

ruamel.yaml-0.15.29-cp34-cp34m-manylinux1_x86_64.whl (562.8 kB view details)

Uploaded CPython 3.4m

ruamel.yaml-0.15.29-cp33-cp33m-win_amd64.whl (188.4 kB view details)

Uploaded CPython 3.3mWindows x86-64

ruamel.yaml-0.15.29-cp33-cp33m-win32.whl (177.7 kB view details)

Uploaded CPython 3.3mWindows x86

ruamel.yaml-0.15.29-cp33-cp33m-manylinux1_x86_64.whl (537.0 kB view details)

Uploaded CPython 3.3m

ruamel.yaml-0.15.29-cp27-cp27mu-manylinux1_x86_64.whl (532.9 kB view details)

Uploaded CPython 2.7mu

ruamel.yaml-0.15.29-cp27-cp27m-win_amd64.whl (189.4 kB view details)

Uploaded CPython 2.7mWindows x86-64

ruamel.yaml-0.15.29-cp27-cp27m-win32.whl (177.6 kB view details)

Uploaded CPython 2.7mWindows x86

ruamel.yaml-0.15.29-cp27-cp27m-manylinux1_x86_64.whl (532.9 kB view details)

Uploaded CPython 2.7m

File details

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

File metadata

  • Download URL: ruamel.yaml-0.15.29.tar.gz
  • Upload date:
  • Size: 258.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ruamel.yaml-0.15.29.tar.gz
Algorithm Hash digest
SHA256 741b5668c46276543a573f20fd5df0a671b2dfe2e689d22847fdf38c0dd461f2
MD5 54f7644b24d578063e3e477cdf04f593
BLAKE2b-256 e1ede7aecfa6cf5faaf3d8fba7e499cef89986ee683868908ef1801e6dc00009

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 3467bcd26bb9896fb8ae4bdbd7e483fdaeb9ee420da82632589cae5e84ebed9b
MD5 02e3a1e7f36eba8ece413a76baf2e5d0
BLAKE2b-256 ea88353c2a3ef56669a8f860e465781e0b1d54824a660bb4d199f405948689a3

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 574edfba9fa476c6161886d8012fd272aa444c217193a43325d39f634070710f
MD5 db070c4b8c5de88f4e9e821433d3c24b
BLAKE2b-256 c3b38fffe2a1a665c7b610998a7d54242b519d2d94b3b7a3819df755f30affaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b88f8fb4cd4f9212fddd7d132f494f63d6b2be8e08e324bdb5cd288b976cd75e
MD5 fe2eb83fff3654a1f494769146d3e5dc
BLAKE2b-256 dcd892f79802bfa96e9a18c5a20ec5fc8db295b587e764794e4a7bacfe427ca0

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 46546d89c345a0ced425ac029dd7fcc9b7f92069d5477991c2eb3cdc9c03884e
MD5 8c22818ee5c9eefcc88641b4b51aaa2b
BLAKE2b-256 737e859176eac4eded20e33115025478ff97fd049e2e50a572f94b6abb49a8ca

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 bf274b5ac15529a001b527ebe40bd9766aed0cbf198d37ed1860c1b36aee8d09
MD5 ca7f3c63b0e0b4cbfb84d66878028d26
BLAKE2b-256 64b225550ae688b87d35a7c5b2d0744e7ae1bf711c8acb5722dc80171fb5d9a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1fbe5f98a9b66a05e395fe0715e197b2aac4e271c068c94ffe4dddec0bf421b8
MD5 223697cc0fc6c06865ca69a988617718
BLAKE2b-256 79bd526b224fd0a3190fca9e15c20a0aa12c05c1d84b1f55ed17180e3953adaa

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 7036fcc07f49cf5c33f476a31c189ab1e6fce5d116f6028d917d3eac1e822633
MD5 3443370b32592312dd74cceb2e168df3
BLAKE2b-256 ee54d6fb5072215ba1892bfba05fd9f8910a4c518ec87860f6edab9e89d87458

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 039060e3575d9f66935335355b2632a2717bb61dbb09824ee5f5384dd5212b39
MD5 4d306215b86798340bc434ab8d6c09f1
BLAKE2b-256 d0fb49d09ae5afc9d306f7b77407f92111fddc1f1083c80d8b716f9c82268037

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 44170b44ede79656ce4f2a01bcb0f0ba2a334ff1d18fabdbfc34adaa45d40c26
MD5 6bc8f06340cad835d9916bd4c3b7bcd9
BLAKE2b-256 0ea57a6862d49dec6a255f3728def045d0ad94a46025c52a5857cfe1b897ddfd

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp33-cp33m-win_amd64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp33-cp33m-win_amd64.whl
Algorithm Hash digest
SHA256 fea6ecfdfca3d828c7908e12ef798d7fdcd69c322df9b74b9af7b07e36c821c6
MD5 2b6451efcaaa96956bc5b084b6998d48
BLAKE2b-256 75b0734ec56c25a753a11d8121e43fa5171ef38753e186ab7497b2f04e8999a0

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp33-cp33m-win32.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp33-cp33m-win32.whl
Algorithm Hash digest
SHA256 25bda5617bba8944fb2f9becdb2c49b3ae72b8db3c47855dcb5c7da98a69366f
MD5 042fe5cee22dcf611889db28b32f4ee8
BLAKE2b-256 d1c061607bd0bf35c21833d9eb041d18422cd799b7643923af3ff0161a2f026e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp33-cp33m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e1a5371fe25ab6e36bed206a5fd60724ee191e497aac7503d0ea827e3be7fc8e
MD5 a37424443882b876838687da114840a5
BLAKE2b-256 d1c8f5ec5520bd22f74842f242c47382624b5f5f4c8793fd8eec3cd607eeed48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 882a4e03a1a3793d241112c19697e76209ebc68b5a1b912de0263b0ed65598e2
MD5 b0b75d83a7a1049b8d67e12112484c45
BLAKE2b-256 01c8bb6835650c69372f34474eff7acba2c52eb302c20906b1fb0830ff647e40

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 61ec6a93fb150df0753bc1fe56aca0d9091781741cb82d1805549bc4b8e1c2ef
MD5 f9e93d43fc6030682cf99e489bbd5340
BLAKE2b-256 d96522a30590b5a442ea376e3bf07c70b64a99025af388faa5e87c5ffa26c5a7

See more details on using hashes here.

File details

Details for the file ruamel.yaml-0.15.29-cp27-cp27m-win32.whl.

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 931d501ddebe0fa573c5f5e7ac8890a307761fc581b31c9840f52ff0f0c802a4
MD5 7a882775448b58ff4b660d9db0b722d5
BLAKE2b-256 0195b0225d364badf8b3baddcf00b26caf346d409bed29d25de08e39076925f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruamel.yaml-0.15.29-cp27-cp27m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 024e605ea32d53e525584fd8b7a22f2a64206baf933c488d5d8bef1d47d2ade3
MD5 9b00b2bea59652b44569b8e1414e8c06
BLAKE2b-256 b5b6b84bc603b533cbc87f50c3d58b3a85b5693a6c9e66f733c6d17d620cb9e8

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