← Back to issue list

Utility to allow a `format` option for commands.

View original Github issue

Metadata

Project
craft-application
Number
#342
Type
issue
State
open
Author
lengau
Labels
Created
2024-05-09 17:47:25+00:00
Updated
2025-05-23 17:26:53+00:00
Closed

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.