On 19/04/2021 11:52, Loris Bennett wrote:
Hi,
I have various small programs which tend to have an interface like the
following example:
usage: grocli [-h] [-o {check,add,delete}] [-u USERS [USERS ...]] [-g GROUP]
Command line grouper tool
optional arguments:
-h, --help show this help message and exit
-o {check,add,delete}, --operation {check,add,delete}
operation to apply
-u USERS [USERS ...], --users USERS [USERS ...]
users to apply operation to
-g GROUP, --group GROUP
group to apply operation to
However, the options -o, -u, and -g are required, not optional.
The documentation
https://docs.python.org/3/library/argparse.html#required
advises against required options and here
https://stackoverflow.com/questions/24180527/argparse-required-arguments-listed-under-optional-arguments
a way of adding a section 'required arguments' to the usage is
described.
I would be interested to know what the general thinking on "required
options" is. Is there just a better way of designing such interfaces?
For the example above you could realize the operation through subparsers
and switch group and users. In cases where no such "natural" order of
arguments exists I'd have no qualms to use required options. Personally
I've not yet come across such a case.
--
https://mail.python.org/mailman/listinfo/python-list