miller/pkg/cli
John Kerl 6a38408bb3
Treat YAML like JSON for auto-flatten/auto-unflatten (#2196)
* Treat YAML like JSON for auto-flatten/auto-unflatten (#2195)

Auto-flatten/unflatten decisions only checked for "json", so nested
data written to YAML was needlessly flattened and non-JSON data
converted to YAML was never unflattened into arrays/maps. Both formats
support native nesting, so both should be treated the same way.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Clarify why DCF is excluded from auto-flatten separately from JSON/YAML

DCF isn't a nestable format like JSON/YAML -- it just has its own
hardcoded comma-list serialization for a fixed set of field names
that generic key-spreading flatten would clobber. Split the comment
so that distinction isn't lost.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Refer to JSON/YAML throughout the flatten-unflatten doc

The summary paragraph calling out YAML as an aside did not read
naturally next to prose that otherwise only said JSON. Fold YAML
into the headings and body text directly instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 10:15:33 -04:00
..
doc.go Export library code in pkg/ (#1391) 2023-09-10 17:15:13 -04:00
errors.go Improve error propagation (#1975) 2026-02-16 16:48:41 -05:00
flag_json.go Switch to --as-json (#2106) 2026-06-28 17:04:10 -04:00
flag_types.go Shell tab-completion for bash and zsh (#2096) 2026-06-21 12:47:54 -04:00
flag_types_test.go Shell tab-completion for bash and zsh (#2096) 2026-06-21 12:47:54 -04:00
flatten_unflatten.go Treat YAML like JSON for auto-flatten/auto-unflatten (#2196) 2026-07-15 10:15:33 -04:00
mlrcli_util.go Multiple style updates (#1974) 2026-02-16 15:49:21 -05:00
option_parse.go Treat YAML like JSON for auto-flatten/auto-unflatten (#2196) 2026-07-15 10:15:33 -04:00
option_types.go Exit 0 when skip-trivial-records is used and CSV/TSV ends with blank lines (#1535) (#2146) 2026-07-06 15:22:51 -04:00
README.md Export library code in pkg/ (#1391) 2023-09-10 17:15:13 -04:00
separators.go Shell tab-completion for bash and zsh (#2096) 2026-06-21 12:47:54 -04:00
verb_utils.go Improve error propagation (#1975) 2026-02-16 16:48:41 -05:00

Datatypes for parsing the Miller command line, and the flags table.

  • pkg/climain is the flag-parsing logic for supporting Miller's command-line interface. When you type something like mlr --icsv --ojson put '$sum = $a + $b' then filter '$sum > 1000' myfile.csv, it's the CLI parser which makes it possible for Miller to construct a CSV record-reader, a transformer chain of put then filter, and a JSON record-writer.
  • pkg/cli contains datatypes and the flags table for the CLI-parser, which was split out to avoid a Go package-import cycle.