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 --helpshows the help window for the flags whilstfoostandlone 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.