Open lengau opened 1 month ago
Add utilities of some form to make it easy for commands to add a unified format option for various tabular command outputs.
format
Ideally a command's fill_parser method would be able to do something like:
fill_parser
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 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.
data
This got added to the names command in snapcraft recently: https://github.com/canonical/snapcraft/pull/4778 Charmcraft has a partial implementation, but still relies on the command itself being aware of each format.
names
Thank you for reporting us your feedback!
The internal ticket has been created: https://warthogs.atlassian.net/browse/CRAFT-2908.
This message was autogenerated
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:and then we'd have a related function that actually emits the formatted message, something like:
Here the
data
object would need to be something that can (at minimum) be used by 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, but still relies on the command itself being aware of each format.