mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-17 16:38:54 +00:00
Support YAML I/O (#1963)
* docs/src/proposal-yaml-io.md * initial step * Add `--y2c` etc * test cases * docs * more testing * more * more test cases * git rm docs/src/proposal-yaml-io.md * make dev * ylistwrap -> yarray
This commit is contained in:
parent
0003b83654
commit
f375440bd4
93 changed files with 2108 additions and 122 deletions
|
|
@ -73,6 +73,16 @@
|
|||
Record 1: "apple":"1", "bat":"2", "cog":"3"
|
||||
Record 2: "dish:egg":"7", "dish:flint":"8", "garlic":""
|
||||
|
||||
YAML (single document = object or array of objects; multiple documents with ---):
|
||||
+---------------------+
|
||||
| apple: 1 |
|
||||
| bat: 2 | Record 1: "apple":"1", "bat":"2", "cog":"3"
|
||||
| cog: 3 |
|
||||
| --- |
|
||||
| dish: 7 | Record 2: "dish":"7", "egg":"8"
|
||||
| egg: 8 |
|
||||
+---------------------+
|
||||
|
||||
PPRINT: pretty-printed tabular
|
||||
+---------------------+
|
||||
| apple bat cog |
|
||||
|
|
@ -386,6 +396,7 @@
|
|||
--itsvlite Use TSV-lite format for input data.
|
||||
--iusv or --iusvlite Use USV format for input data.
|
||||
--ixtab Use XTAB format for input data.
|
||||
--iyaml Use YAML format for input data.
|
||||
--json or -j or --j2j Use JSON format for input and output data.
|
||||
--jsonl or --l2l Use JSON Lines format for input and output data.
|
||||
--nidx or --n2n Use NIDX format for input and output data.
|
||||
|
|
@ -402,12 +413,14 @@
|
|||
--otsvlite Use TSV-lite format for output data.
|
||||
--ousv or --ousvlite Use USV format for output data.
|
||||
--oxtab Use XTAB format for output data.
|
||||
--oyaml Use YAML format for output data.
|
||||
--pprint or --p2p Use PPRINT format for input and output data.
|
||||
--tsv or -t or --t2t Use TSV format for input and output data.
|
||||
--tsvlite Use TSV-lite format for input and output data.
|
||||
--usv or --usvlite Use USV format for input and output data.
|
||||
--xtab or --x2x Use XTAB format for input and output data.
|
||||
--xvright Right-justify values for XTAB format.
|
||||
--yaml or --y2y Use YAML format for input and output data.
|
||||
-i {format name} Use format name for input data. For example: `-i csv`
|
||||
is the same as `--icsv`.
|
||||
-o {format name} Use format name for output data. For example: `-o
|
||||
|
|
@ -435,20 +448,21 @@
|
|||
|
||||
1mFORMAT-CONVERSION KEYSTROKE-SAVER FLAGS0m
|
||||
As keystroke-savers for format-conversion you may use the following.
|
||||
The letters c, t, j, l, d, n, x, p, and m refer to formats CSV, TSV, DKVP, NIDX,
|
||||
JSON, JSON Lines, XTAB, PPRINT, and markdown, respectively.
|
||||
The letters c, t, j, l, d, n, x, p, m, and y refer to formats CSV, TSV, JSON, JSON Lines,
|
||||
DKVP, NIDX, XTAB, PPRINT, markdown, and YAML, respectively.
|
||||
|
||||
| In\out | CSV | TSV | JSON | JSONL | DKVP | NIDX | XTAB | PPRINT | Markdown |
|
||||
+----------+----------+----------+----------+-------+-------+-------+-------+--------+----------|
|
||||
| CSV | --c2c,-c | --c2t | --c2j | --c2l | --c2d | --c2n | --c2x | --c2p | --c2m |
|
||||
| TSV | --t2c | --t2t,-t | --t2j | --t2l | --t2d | --t2n | --t2x | --t2p | --t2m |
|
||||
| JSON | --j2c | --j2t | --j2j,-j | --j2l | --j2d | --j2n | --j2x | --j2p | --j2m |
|
||||
| JSONL | --l2c | --l2t | --l2j | --l2l | --l2d | --l2n | --l2x | --l2p | --l2m |
|
||||
| DKVP | --d2c | --d2t | --d2j | --d2l | --d2d | --d2n | --d2x | --d2p | --d2m |
|
||||
| NIDX | --n2c | --n2t | --n2j | --n2l | --n2d | --n2n | --n2x | --n2p | --n2m |
|
||||
| XTAB | --x2c | --x2t | --x2j | --x2l | --x2d | --x2n | --x2x | --x2p | --x2m |
|
||||
| PPRINT | --p2c | --p2t | --p2j | --p2l | --p2d | --p2n | --p2x | -p2p | --p2m |
|
||||
| Markdown | --m2c | --m2t | --m2j | --m2l | --m2d | --m2n | --m2x | --m2p | |
|
||||
| In\out | CSV | TSV | JSON | JSONL | DKVP | NIDX | XTAB | PPRINT | Markdown | YAML |
|
||||
+----------+----------+----------+----------+-------+-------+-------+-------+--------+----------+--------+
|
||||
| CSV | --c2c,-c | --c2t | --c2j | --c2l | --c2d | --c2n | --c2x | --c2p | --c2m | --c2y |
|
||||
| TSV | --t2c | --t2t,-t | --t2j | --t2l | --t2d | --t2n | --t2x | --t2p | --t2m | --t2y |
|
||||
| JSON | --j2c | --j2t | --j2j,-j | --j2l | --j2d | --j2n | --j2x | --j2p | --j2m | --j2y |
|
||||
| JSONL | --l2c | --l2t | --l2j | --l2l | --l2d | --l2n | --l2x | --l2p | --l2m | --l2y |
|
||||
| DKVP | --d2c | --d2t | --d2j | --d2l | --d2d | --d2n | --d2x | --d2p | --d2m | --d2y |
|
||||
| NIDX | --n2c | --n2t | --n2j | --n2l | --n2d | --n2n | --n2x | --n2p | --n2m | --n2y |
|
||||
| XTAB | --x2c | --x2t | --x2j | --x2l | --x2d | --x2n | --x2x | --x2p | --x2m | --x2y |
|
||||
| PPRINT | --p2c | --p2t | --p2j | --p2l | --p2d | --p2n | --p2x | -p2p | --p2m | --p2y |
|
||||
| Markdown | --m2c | --m2t | --m2j | --m2l | --m2d | --m2n | --m2x | --m2p | | --m2y |
|
||||
| YAML | --y2c | --y2t | --y2j | --y2l | --y2d | --y2n | --y2x | --y2p | --y2m | --y2y |
|
||||
|
||||
-p Keystroke-saver for `--nidx --fs space --repifs`.
|
||||
-T Keystroke-saver for `--nidx --fs tab`.
|
||||
|
|
@ -467,6 +481,10 @@
|
|||
the default for JSON Lines output format.
|
||||
--no-jvstack Put objects/arrays all on one line for JSON output.
|
||||
This is the default for JSON Lines output format.
|
||||
--no-yarray Do not wrap YAML output in a single array document;
|
||||
emit one YAML document per record with `---` between.
|
||||
--yarray or --ya Wrap YAML output in a single top-level array
|
||||
document. This is the default for YAML output format.
|
||||
|
||||
1mLEGACY FLAGS0m
|
||||
These are flags which don't do anything in the current Miller version.
|
||||
|
|
@ -806,6 +824,7 @@
|
|||
pprint " " N/A "\n"
|
||||
tsv " " N/A "\n"
|
||||
xtab "\n" " " "\n\n"
|
||||
yaml N/A N/A N/A
|
||||
|
||||
--fs {string} Specify FS for input and output.
|
||||
--ifs {string} Specify FS for input.
|
||||
|
|
|
|||
45
man/mlr.1
45
man/mlr.1
|
|
@ -104,6 +104,16 @@ JSON Lines (sequence of one-line objects):
|
|||
Record 1: "apple":"1", "bat":"2", "cog":"3"
|
||||
Record 2: "dish:egg":"7", "dish:flint":"8", "garlic":""
|
||||
|
||||
YAML (single document = object or array of objects; multiple documents with ---):
|
||||
+---------------------+
|
||||
| apple: 1 |
|
||||
| bat: 2 | Record 1: "apple":"1", "bat":"2", "cog":"3"
|
||||
| cog: 3 |
|
||||
| --- |
|
||||
| dish: 7 | Record 2: "dish":"7", "egg":"8"
|
||||
| egg: 8 |
|
||||
+---------------------+
|
||||
|
||||
PPRINT: pretty-printed tabular
|
||||
+---------------------+
|
||||
| apple bat cog |
|
||||
|
|
@ -475,6 +485,7 @@ are overridden in all cases by setting output format to `format2`.
|
|||
--itsvlite Use TSV-lite format for input data.
|
||||
--iusv or --iusvlite Use USV format for input data.
|
||||
--ixtab Use XTAB format for input data.
|
||||
--iyaml Use YAML format for input data.
|
||||
--json or -j or --j2j Use JSON format for input and output data.
|
||||
--jsonl or --l2l Use JSON Lines format for input and output data.
|
||||
--nidx or --n2n Use NIDX format for input and output data.
|
||||
|
|
@ -491,12 +502,14 @@ are overridden in all cases by setting output format to `format2`.
|
|||
--otsvlite Use TSV-lite format for output data.
|
||||
--ousv or --ousvlite Use USV format for output data.
|
||||
--oxtab Use XTAB format for output data.
|
||||
--oyaml Use YAML format for output data.
|
||||
--pprint or --p2p Use PPRINT format for input and output data.
|
||||
--tsv or -t or --t2t Use TSV format for input and output data.
|
||||
--tsvlite Use TSV-lite format for input and output data.
|
||||
--usv or --usvlite Use USV format for input and output data.
|
||||
--xtab or --x2x Use XTAB format for input and output data.
|
||||
--xvright Right-justify values for XTAB format.
|
||||
--yaml or --y2y Use YAML format for input and output data.
|
||||
-i {format name} Use format name for input data. For example: `-i csv`
|
||||
is the same as `--icsv`.
|
||||
-o {format name} Use format name for output data. For example: `-o
|
||||
|
|
@ -540,20 +553,21 @@ See the flatten/unflatten doc page https://miller.readthedocs.io/en/latest/flatt
|
|||
.\}
|
||||
.nf
|
||||
As keystroke-savers for format-conversion you may use the following.
|
||||
The letters c, t, j, l, d, n, x, p, and m refer to formats CSV, TSV, DKVP, NIDX,
|
||||
JSON, JSON Lines, XTAB, PPRINT, and markdown, respectively.
|
||||
The letters c, t, j, l, d, n, x, p, m, and y refer to formats CSV, TSV, JSON, JSON Lines,
|
||||
DKVP, NIDX, XTAB, PPRINT, markdown, and YAML, respectively.
|
||||
|
||||
| In\eout | CSV | TSV | JSON | JSONL | DKVP | NIDX | XTAB | PPRINT | Markdown |
|
||||
+----------+----------+----------+----------+-------+-------+-------+-------+--------+----------|
|
||||
| CSV | --c2c,-c | --c2t | --c2j | --c2l | --c2d | --c2n | --c2x | --c2p | --c2m |
|
||||
| TSV | --t2c | --t2t,-t | --t2j | --t2l | --t2d | --t2n | --t2x | --t2p | --t2m |
|
||||
| JSON | --j2c | --j2t | --j2j,-j | --j2l | --j2d | --j2n | --j2x | --j2p | --j2m |
|
||||
| JSONL | --l2c | --l2t | --l2j | --l2l | --l2d | --l2n | --l2x | --l2p | --l2m |
|
||||
| DKVP | --d2c | --d2t | --d2j | --d2l | --d2d | --d2n | --d2x | --d2p | --d2m |
|
||||
| NIDX | --n2c | --n2t | --n2j | --n2l | --n2d | --n2n | --n2x | --n2p | --n2m |
|
||||
| XTAB | --x2c | --x2t | --x2j | --x2l | --x2d | --x2n | --x2x | --x2p | --x2m |
|
||||
| PPRINT | --p2c | --p2t | --p2j | --p2l | --p2d | --p2n | --p2x | -p2p | --p2m |
|
||||
| Markdown | --m2c | --m2t | --m2j | --m2l | --m2d | --m2n | --m2x | --m2p | |
|
||||
| In\eout | CSV | TSV | JSON | JSONL | DKVP | NIDX | XTAB | PPRINT | Markdown | YAML |
|
||||
+----------+----------+----------+----------+-------+-------+-------+-------+--------+----------+--------+
|
||||
| CSV | --c2c,-c | --c2t | --c2j | --c2l | --c2d | --c2n | --c2x | --c2p | --c2m | --c2y |
|
||||
| TSV | --t2c | --t2t,-t | --t2j | --t2l | --t2d | --t2n | --t2x | --t2p | --t2m | --t2y |
|
||||
| JSON | --j2c | --j2t | --j2j,-j | --j2l | --j2d | --j2n | --j2x | --j2p | --j2m | --j2y |
|
||||
| JSONL | --l2c | --l2t | --l2j | --l2l | --l2d | --l2n | --l2x | --l2p | --l2m | --l2y |
|
||||
| DKVP | --d2c | --d2t | --d2j | --d2l | --d2d | --d2n | --d2x | --d2p | --d2m | --d2y |
|
||||
| NIDX | --n2c | --n2t | --n2j | --n2l | --n2d | --n2n | --n2x | --n2p | --n2m | --n2y |
|
||||
| XTAB | --x2c | --x2t | --x2j | --x2l | --x2d | --x2n | --x2x | --x2p | --x2m | --x2y |
|
||||
| PPRINT | --p2c | --p2t | --p2j | --p2l | --p2d | --p2n | --p2x | -p2p | --p2m | --p2y |
|
||||
| Markdown | --m2c | --m2t | --m2j | --m2l | --m2d | --m2n | --m2x | --m2p | | --m2y |
|
||||
| YAML | --y2c | --y2t | --y2j | --y2l | --y2d | --y2n | --y2x | --y2p | --y2m | --y2y |
|
||||
|
||||
-p Keystroke-saver for `--nidx --fs space --repifs`.
|
||||
-T Keystroke-saver for `--nidx --fs tab`.
|
||||
|
|
@ -580,6 +594,10 @@ These are flags which are applicable to JSON output format.
|
|||
the default for JSON Lines output format.
|
||||
--no-jvstack Put objects/arrays all on one line for JSON output.
|
||||
This is the default for JSON Lines output format.
|
||||
--no-yarray Do not wrap YAML output in a single array document;
|
||||
emit one YAML document per record with `---` between.
|
||||
--yarray or --ya Wrap YAML output in a single top-level array
|
||||
document. This is the default for YAML output format.
|
||||
.fi
|
||||
.if n \{\
|
||||
.RE
|
||||
|
|
@ -967,6 +985,7 @@ Notes about all other separators:
|
|||
pprint " " N/A "\en"
|
||||
tsv " " N/A "\en"
|
||||
xtab "\en" " " "\en\en"
|
||||
yaml N/A N/A N/A
|
||||
|
||||
--fs {string} Specify FS for input and output.
|
||||
--ifs {string} Specify FS for input.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue