Current thinking on required options

Peter Otten __peter__ at web.de
Mon Apr 19 07:29:08 EDT 2021


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.



More information about the Python-list mailing list