[Python] argparse e opzioni mutualmente esclusive

Manlio Perillo manlio.perillo a gmail.com
Mer 11 Nov 2015 18:12:52 CET


2015-11-11 18:02 GMT+01:00 Alessandro T. <tagliare3 a yahoo.it>:
> Ciao ML,
>
> sto cercando di condensare alcuni script di manutenzione in uno unico,
> razionalizzando l'interfaccia, e per l'occasione vorrei utilizzare
> argparse per la gestione della CLI.
> Due di questi script sono mutualmente esclusivi: il primo ha
> un'interfaccia tipo "[-r] q" e il secondo "-u"; oltre a altri parametri.
> Ce n'è un terzo che se richiamato con un particolare valore va a
> escludere comunque l'eventuale presenza dei parametri dei primi due, ma
> in genere è un'opzione e della sua gestione me ne occupo a posteriori.
>
> Alla fine sto cercando di ottenere una cosa tipo "[-n N] [[-r] q | -u]"
> però non riesco a unire "[-r] q" in un gruppo mutualmente esclusivo a "-u".
> Se possibile vorrei evitare subparser per mantenere l'help il più
> immediato possibile, senza sub help.
>
> Spero di essere stato sufficientemente chiaro.
>
> Qualche consiglio?
>

Usa subparser!
Davvero; ho visto fin troppi programmi abusare le opzioni da riga di
comando tanto da diventare incomprensibili (la maggioranza dei
programmi GNU).
E personalemente odio quando una opzione *non è* opzionale, in
particolare pacman quando fa

  $pacman -Syu
invece di
  $pacman install -y -u


Ciao  Manlio

> Ciao
>
> --
> Alessandro T.
>
> R: Perché leggiamo dall'alto al basso e da sinistra a destra.
> D: Perché dovrei iniziare la risposta all'e-mail dopo il testo citato?
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python


Maggiori informazioni sulla lista Python