An opinionated yaml formatter based on ruamel.yaml
Project description
yamlfmt
A simple opionated yaml formatter that keeps your comments!
yamlfmt
is just a cli wrapper around the ruamel.yaml python library, which happens to have the unique quality of keeping comments.
Usage
Note: The formatting used is subject to change without notice. Once a format seems to stick v1.0 will be tagged and the format will not change.
❯ yamlfmt -h usage: yamlfmt [-h] [-w] [file [file ...]] positional arguments: file file to parse optional arguments: -h, --help show this help message and exit -w, --write write formatted outpout to (source) file instead of stdout
Examples
Lets see yamlfmt
in action:
Simple example from ruamel.yaml docs
❯ yamlfmt <<EOF # example name: # details family: Smith # very common given: Alice # one of the siblings EOF # example name: # details family: Smith # very common given: Alice # one of the siblings
Travis-CI nodejs example
❯ yamlfmt <<EOF language: node_js # test on two node.js versions: 0.6 and 0.8 node_js: - 0.6 - 0.8 # configure notifications (email, IRC, campfire etc) # please update this section to your needs! notifications: irc: "irc.freenode.org#travis" EOF language: node_js # test on two node.js versions: 0.6 and 0.8 node_js: - 0.6 - 0.8 # configure notifications (email, IRC, campfire etc) # please update this section to your needs! notifications: irc: irc.freenode.org#travis
Complex example from ruamel.yaml docs
❯ yamlfmt <<EOF - &CENTER {x: 1, y: 2} - &LEFT {x: 0, y: 2} - &BIG {r: 10} - &SMALL {r: 1} # All the following maps are equal: # Explicit keys - x: 1 y: 2 r: 10 label: center/big # Merge one map - <<: *CENTER r: 10 label: center/big # Merge multiple maps - <<: [*CENTER, *BIG] label: center/big # Override - <<: [*BIG, *LEFT, *SMALL] x: 1 label: center/big EOF - &CENTER {x: 1, y: 2} - &LEFT {x: 0, y: 2} - &BIG {r: 10} - &SMALL {r: 1} # All the following maps are equal: # Explicit keys - x: 1 y: 2 r: 10 label: center/big # Merge one map - <<: *CENTER r: 10 label: center/big # Merge multiple maps - <<: [*CENTER, *BIG] label: center/big # Override - <<: [*BIG, *LEFT, *SMALL] x: 1 label: center/big
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
yamlfmt-1.1.0.tar.gz
(2.8 kB
view hashes)
Built Distribution
Close
Hashes for yamlfmt-1.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 138537815afd898528a0ec02d7fe9144b42f2b283af8387d5b03e8f9c0119b54 |
|
MD5 | a996a52aea86af36fa1db1ea891b281b |
|
BLAKE2-256 | 4d1d197cef578b9e011e789e101533218fd2e1fd6f77cbb1f4691535a0b9aee6 |