Utility to allow a `format` option for commands.
Metadata
Current evaluation
No evaluation has been recorded for this issue yet.
Issue body
### What needs to get done
Add utilities of some form to make it easy for commands to add a unified `format` option for various tabular command outputs.
Ideally a command's `fill_parser` method would be able to do something like:
```
utils.add_format_argument(parser)
```
and then we'd have a related function that actually emits the formatted message, something like:
```
def emit_formatted_output(format: FormatValue, headers: Sequence[str], data) -> None:
...
```
Here the `data` object would need to be something that can (at minimum) be used by [tabulate](https://pypi.org/project/tabulate/) and be serialised into JSON. With those two formats, we'd likely get the ability to do other formats (e.g. YAML, toml) if we decide to add that in the future.
### Why it needs to get done
This got added to the `names` command in snapcraft recently: https://github.com/canonical/snapcraft/pull/4778
Charmcraft has a [partial implementation](https://github.com/canonical/charmcraft/blob/e2ad204f828a4ef387090d3e626f0f6db34e5996/charmcraft/application/commands/base.py#L33), but still relies on the command itself being aware of each format.
Evaluation history
No evaluation history available.