summaryrefslogtreecommitdiffstats
path: root/_doc/pyyaml.ryd
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--_doc/pyyaml.ryd72
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