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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yamlfmt-0.1.6.tar.gz.
File metadata
- Download URL: yamlfmt-0.1.6.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c18a0382f86cf38a89d274f17f9f5380975d4d5d6683822167c17270c5e136d
|
|
| MD5 |
4b0ec4266662b81950f96d8524802cb6
|
|
| BLAKE2b-256 |
777069cb91695627889168a181c7744488f86ad85fe438f8b71363c68c76fef9
|
File details
Details for the file yamlfmt-0.1.6-py2.py3-none-any.whl.
File metadata
- Download URL: yamlfmt-0.1.6-py2.py3-none-any.whl
- Upload date:
- Size: 2.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ee71f56b45a380b92decc85429ba12eb9fdaedcac43efc5c82cb25c4e8338a0
|
|
| MD5 |
d757bdc8de349858d85874a408c47607
|
|
| BLAKE2b-256 |
df82003e1cdc5dcb181d6290b2c80249e0ea7b86f8d95a55e730951158e219ef
|