diff options
Diffstat (limited to '')
-rw-r--r-- | _doc/pyyaml.ryd | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/_doc/pyyaml.ryd b/_doc/pyyaml.ryd new file mode 100644 index 0000000..f670237 --- /dev/null +++ b/_doc/pyyaml.ryd @@ -0,0 +1,72 @@ +version: 0.2 +text: md +pdf: false +--- | +# Differences with PyYAML + +::: parsed-literal + +*If I have seen further, it is by standing on the shoulders of giants*. + +: Isaac Newton (1676) +::: + +`ruamel.yaml` is a derivative of Kirill Simonov\'s [PyYAML +3.11](https://bitbucket.org/xi/pyyaml) and would not exist without that +excellent base to start from. + +The following a summary of the major differences with PyYAML 3.11 + +## Defaulting to YAML 1.2 support + +PyYAML supports the [YAML 1.1]() standard, `ruamel.yaml` supports [YAML +1.2]() as released in 2009. + +- YAML 1.2 dropped support for several features unquoted `Yes`, `No`, + `On`, `Off` +- YAML 1.2 no longer accepts strings that start with a `0` and solely + consist of number characters as octal, you need to specify such + strings with `0o[0-7]+` (zero + lower-case o for octal + one or more + octal characters). +- YAML 1.2 no longer supports + [sexagesimals](https://en.wikipedia.org/wiki/Sexagesimal), so the + string scalar `12:34:56` doesn\'t need quoting. +- `\/` escape for JSON compatibility +- correct parsing of floating point scalars with exponentials + +unless the YAML document is loaded with an explicit `version==1.1` or +the document starts with: + + % YAML 1.1 + +, `ruamel.yaml` will load the document as version 1.2. + +## PY2/PY3 reintegration + +`ruamel.yaml` re-integrates the Python 2 and 3 sources, running on +Python 2.7 (CPython, PyPy), 3.3, 3.4, 3.5 and 3.6 (support for 2.6 has +been dropped mid 2016). It is more easy to extend and maintain as only a +miniscule part of the code is Python version specific. + +## Fixes + +- `ruamel.yaml` follows the `indent` keyword argument on scalars when + dumping. +- `ruamel.yaml` allows `:` in plain scalars, as long as these are not + followed by a space (as per the specification) + +## Testing + +`ruamel.yaml` is tested using [tox]() and [py.test](). In addition to +new tests, the original PyYAML test framework is called from within +`tox` runs. + +Before versions are pushed to PyPI, `tox` is invoked, and has to pass, +on all supported Python versions, on PyPI as well as flake8/pep8 + +## API + +Starting with 0.15 the API for using `ruamel.yaml` has diverged allowing +easier addition of new features. +--- !inc-raw +- links.rydinc |