summaryrefslogtreecommitdiffstats
path: root/_doc/README.ryd
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--_doc/README.ryd120
1 files changed, 120 insertions, 0 deletions
diff --git a/_doc/README.ryd b/_doc/README.ryd
new file mode 100644
index 0000000..f728607
--- /dev/null
+++ b/_doc/README.ryd
@@ -0,0 +1,120 @@
+version: 0.2
+text: md
+pdf: false
+order:
+- overview.ryd
+- install.ryd
+- basicuse.ryd
+- dumpcls.ryd
+- detail.ryd
+- example.ryd
+- api.ryd
+- pyyaml.ryd
+- contributing.ryd
+toc: False # don't index this file or put in mkdocs.nav
+mkdocs:
+ site_name: yaml
+ docs_dir: _doc
+ site_author: Anthon van der Neut
+
+ nav:
+ - overview.md
+ - install.md
+ - basicuse.md
+ - dumpcls.md
+ - detail.md
+ - example.md
+ - api.md
+ - pyyaml.md
+ - contributing.md
+
+ theme:
+ name: readthedocs
+
+ exclude_docs: |
+ *.ryd
+ *.rst
+
+ markdown_extensions:
+ - toc:
+ permalink: true
+--- |
+# ruamel.yaml
+
+`ruamel.yaml` is a YAML 1.2 loader/dumper package for Python.
+
+--- !table
+version: !Env version
+updated: !Env date
+documentation: https://yaml.readthedocs.io
+repository: https://sourceforge.net/projects/ruamel-yaml
+pypi: https://pypi.org/project/ruamel.yaml
+--- |
+
+As announced, in 0.18.0, the old PyYAML functions have been deprecated.
+(`scan`, `parse`, `compose`, `load`, `emit`, `serialize`, `dump` and their variants
+(`_all`, `safe_`, `round_trip_`, etc)). If you only read this after your program has
+stopped working: I am sorry to hear that, but that also means you, or the person
+developing your program, has not tested with warnings on (which is the recommendation
+in PEP 565, and e.g. defaultin when using `pytest`). If you have troubles, explicitly use
+```
+pip install "ruamel.yaml<0.18.0"
+```
+or put something to that effects in your requirments, to give yourself
+some time to solve the issue.
+
+There will be at least one more potentially breaking change in the 0.18 series: `YAML(typ='unsafe')`
+now has a pending deprecation warning and is going to be deprecated, probably before the end of 2023.
+If you only use it to dump, please use the new `YAML(typ='full')`, the result of that can be *safely*
+loaded with a default instance `YAML()`, as that will get you inspectable, tagged, scalars, instead of
+executed Python functions/classes. (You should probably add constructors for what you actually need,
+but I do consider adding a `ruamel.yaml.unsafe` package that will re-add the `typ='unsafe'` option.
+*Please adjust/pin your dependencies accordingly if necessary.*
+
+
+There seems to be a CVE on `ruamel.yaml`, stating that the `load()` function could be abused
+because of unchecked input. `load()` was never the default function (that was `round_trip_load()`
+before the new API came into existence`. So the creator of that CVE was ill informed and
+probably lazily assumed that since `ruamel.yaml` is a derivative of PyYAML (for which
+a similar CVE exists), the same problem would still exist, without checking.
+So the CVE was always inappriate, now just more so, as the call
+to the function `load()` with any input will terminate your program with an error message. If you
+(have to) care about such things as this CVE, my recommendation is to stop using Python
+completely, as `pickle.load()` can be abused in the same way as `load()` (and like unlike `load()`
+is only documented to be unsafe, without development-time warning.
+
+Version 0.17.21 was the last one tested to be working on Python 3.5 and 3.6<BR>
+The 0.16.13 release was the last that was tested to be working on Python 2.7.
+
+
+There are two extra plug-in packages
+(`ruamel.yaml.bytes` and `ruamel.yaml.string`)
+for those not wanting to do the streaming to a
+`io.BytesIO/StringIO` buffer themselves.
+
+If your package uses `ruamel.yaml` and is not listed on PyPI, drop me an
+email, preferably with some information on how you use the package (or a
+link to the repository) and I'll keep you informed when the status of
+the API is stable enough to make the transition.
+
+--- !toc
+level: 3
+# prefix: http://yaml.readthedocs.io/en/latest/
+--- |
+
+[![image](https://readthedocs.org/projects/yaml/badge/?version=latest)](https://yaml.readthedocs.org/en/latest?badge=latest)[![image](https://bestpractices.coreinfrastructure.org/projects/1128/badge)](https://bestpractices.coreinfrastructure.org/projects/1128)
+[![image](https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree/_doc/_static/license.svg?format=raw)](https://opensource.org/licenses/MIT)
+[![image](https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree/_doc/_static/pypi.svg?format=raw)](https://pypi.org/project/ruamel.yaml/)
+[![image](https://sourceforge.net/p/oitnb/code/ci/default/tree/_doc/_static/oitnb.svg?format=raw)](https://pypi.org/project/oitnb/)
+[![image](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
+
+# ChangeLog
+
+--- !changelog
+CHANGES
+--- |
+
+------------------------------------------------------------------------
+
+For older changes see the file
+[CHANGES](https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree/CHANGES)