summaryrefslogtreecommitdiff
path: root/_doc/pyyaml.ryd
diff options
context:
space:
mode:
authorAnthon van der Neut <anthon@mnt.org>2017-07-15 20:17:29 +0200
committerAnthon van der Neut <anthon@mnt.org>2017-07-15 20:17:29 +0200
commit0efe181f5bdf6f961aa7658b4a0288af1b63213b (patch)
treebb2ab46a852444b11376108009408ee823a73331 /_doc/pyyaml.ryd
parentf6c3fcef0eedf42ad6e25c639091d00dd51e2e99 (diff)
downloadruamel.yaml-0efe181f5bdf6f961aa7658b4a0288af1b63213b.tar.gz
convert to ryd
Diffstat (limited to '_doc/pyyaml.ryd')
-rw-r--r--_doc/pyyaml.ryd84
1 files changed, 84 insertions, 0 deletions
diff --git a/_doc/pyyaml.ryd b/_doc/pyyaml.ryd
new file mode 100644
index 0000000..85aa160
--- /dev/null
+++ b/_doc/pyyaml.ryd
@@ -0,0 +1,84 @@
+---
+version: 0.1
+output: rst
+fix_inline_single_backquotes: true
+--- |
+***********************
+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
+
+.. _yaml-1-2-support:
+
+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.
+
+
+.. include:: links.rst