python-fire
python-fire copied to clipboard
Version flag alongside other commands
I have a script which has multiple commands, each of which have their own arguments etc. I would like to add a simple flag to be used standalone to simply display the version of my script. I would like the the --help
display to additionally show users this flag is available without affecting the other commands. For instance if my script is called foo
, I'd like to be able to do:
foo --version
or foo -v
but I'd still like to do:
foo mycommand myarg
etc.
The two closest solutions I've tried each have a downside:
- the flags and the commands are displayed in different help windows e.g.
foo --help
shows the help window for the flags whilstfoo
standlone shows the help window for the commands - the help window shows both flags and commands but the flag is interpreted as a flag to the commands such that if I type
foo --version
, the version is displayed but so is the help window because it thinks a command is missing
I'm using fire==0.5.0
. Is there any way I can achieve this?
The short option should be -V
, as -v
is usually short for verbose.
Otherwise this would be a great feature, as command --version
is a very common pattern on CLI programs for testing if it is installed correctly.
Right now foo --version
is not supported but foo -- --version
is. The reason we originally chose not to support foo --version
is that the function foo could have an argument named version, and in that case it would be a name collision.
I would be supportive of a change that makes foo --version
in addition to foo -- --version
in all cases except where --version is an acceptable flag to foo. However, note that such a change is not currently planned.