Size: 895
Comment: words
|
← Revision 8 as of 2021-03-28 17:42:24 ⇥
Size: 1590
Comment: Changed the order of the headings to be more logical
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
YAML may be the most human friendly format for structured data invented so far. | YAML is a human-friendly format for structured data, that is both easy to write for humans and still parsable by computers. === PyYAML parser === [[http://pyyaml.org/|PyYAML]] is the most-used and go-to YAML package, which tries to be as compliant as possible with the YAML specs. It is, at its core, C-based. It can both read and write YAML. You can read the [[https://pyyaml.org/wiki/PyYAMLDocumentation|official documentation]], or try the condensed/simplified version of these docs, with usable example code on this [[https://python.land/data-processing/python-yaml|Python YAML tutorial]]. When using this package, be careful which function you use. The `load()` function is very powerful and allows arbitrary code execution, while the `safe_load()` function is enough for most use cases. It only allows a subset of the load function, making it a much safer choice. For more details, see also the [[https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation|load deprecation notice]]. |
Line 5: | Line 11: |
YAML is a feature-overcrept language. Most packages below use its subset. | YAML is a feature-rich language. Some packages that heavily depend on YAML are: |
Line 9: | Line 15: |
* appengine - https://developers.google.com/appengine/docs/python/config/appconfig and http://code.google.com/p/rietveld/source/browse/app.yaml === Full YAML parsers === PyYAML - http://pyyaml.org/ - due to complexity of YAML spec, this is the only package that tried to be compliant. It is C-based. === Parsers for YAML subsets === Luckily, you may not need the full YAML spec. These libraries can parse only the sweetest parts of YAML spec that you may reuse in your configs. |
* appengine - https://developers.google.com/appengine/docs/python/config/appconfig and https://github.com/rietveld-codereview/rietveld/blob/master/app.yaml * salt - http://docs.saltstack.com/topics/tutorials/starting_states.html#default-data-yaml |
YAML is a human-friendly format for structured data, that is both easy to write for humans and still parsable by computers.
PyYAML parser
PyYAML is the most-used and go-to YAML package, which tries to be as compliant as possible with the YAML specs. It is, at its core, C-based. It can both read and write YAML. You can read the official documentation, or try the condensed/simplified version of these docs, with usable example code on this Python YAML tutorial.
When using this package, be careful which function you use. The load() function is very powerful and allows arbitrary code execution, while the safe_load() function is enough for most use cases. It only allows a subset of the load function, making it a much safer choice. For more details, see also the load deprecation notice.
YAML examples and usage in notable Python apps
YAML is a feature-rich language. Some packages that heavily depend on YAML are:
tmuxp - http://tmuxp.readthedocs.org/en/latest/examples.html
ansible - http://www.ansibleworks.com/docs/YAMLSyntax.html and http://www.ansibleworks.com/docs/playbooks.html#id9
appengine - https://developers.google.com/appengine/docs/python/config/appconfig and https://github.com/rietveld-codereview/rietveld/blob/master/app.yaml
salt - http://docs.saltstack.com/topics/tutorials/starting_states.html#default-data-yaml