YAML loader and dumper for PyYAML allowing to keep keys order.
Project description
yamlloader
This module provides loaders and dumpers for PyYAML. Currently, an OrderedDict loader/dumper is implemented, allowing to keep items order when loading resp. dumping a file from/to an OrderedDict.
This project was originally mirrored from yamlordereddict Many thanks to the original author François Ménabé! The library contains several improvements including automated testing and the much faster C-versions of the Loaders/Dumpers.
Install
It is recommended to use the pip or anaconda version
$ pip install yamlloader
or
$ conda install yamlloader -c phynix
But does [your special case here] also work?
Tests are run continuously using randomly generated yaml files. Also, there are no fails to be expected.
Still, if you are concerned that your special case may breaks in the future, please add your own tests as test_ext_anyname.py under tests/ or let us know about your needs. This guarantees that no code will be added that breaks your case.
C vs non-C version
A significant speedup can be reached by replacing the Loader* and Dumper* classes by CLoader* and CDumper*. The package hereby relies on the implementations from PyYAML. If they have not been compiled, yamlloader automatically falls back to the non-C versions.
Therefore using the C-version is safe: if it is not available, the pure Python version is automatically used.
Loader usage
import yaml
import yamlloader
with open('myfile.yml') as yaml_file:
data = yaml.load(yaml_file,
Loader=yamlloader.ordereddict.CLoader)
# CLoader is faster than Loader
Note: For using the safe loader (which takes standard YAML tags and does not construct arbitrary Python objects), replace yamlloader.ordereddict.CLoader by yamlloader.ordereddict.CSafeLoader.
Dumper usage
import yaml
import yamlloader
from collections import OrderedDict
data = OrderedDict([('key1', 'val1'),
('key2', OrderedDict([('key21', 'val21'),
('key22', 'val22')]))])
with open('myfile.yaml', 'w') as yaml_file:
yaml.dump(data, yaml_file,
Dumper=yamlloader.ordereddict.CDumper)
Note: For using the safe dumper (which produce standard YAML tags and does not represent arbitrary Python objects), replace yamlloader.ordereddict.CDumper by yamlloader.ordereddict.CSafeDumper.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for yamlloader-0.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 334b205b586211c9fc40380a2fc94d565154fa82926880c75143f44cfa6c8261 |
|
MD5 | be070f1a82e6f482cb3be6c9efaffa9b |
|
BLAKE2b-256 | 70cb164edc3f9f46280c9a654ea395bb3c56017c93cc813fd83430faca691cb1 |