Je voudrais utiliser argparse dans un cas où on a différents arguments selon la valeur du premier.
Soit par exemple un programme python appelé en ligne de commande qui admet les arguments suivants :
<arg1> 'op1' ou 'op2' ou 'op3' # argument obligatoire
<arg2> : une chaîne de caractères # argument obligatoire
puis
si arg1 == op1 alors pas d'autres arguments
si arg1 == op2 alors l'argument supplémentaire suivant :
<arg3> : une chaîne de caractères # argument obligatoire
si arg1 == op3 alors les arguments supplémentaires suivants :
<arg3> : 'red' ou 'green' ou 'blue' # argument optionnel
<arg4> : '--simu' # argument optionnel
# précisions
Posté par mahikeulbody . Évalué à 2.
J'ai cru voir une piste dans l'option parents mais soit ça ne sert pas à ça soit je n'ai pas su m'en servir.
Je précise que ce n'est pas un TP : j'ai (largement) passé l'âge. En fait, j'ai actuellement plusieurs programmes python différents (un pour chacune des opérations) et j'aurais aimé les fusionner. Un peu comme
[^] # Re: précisions
Posté par amden (site web personnel) . Évalué à 6.
Avec ton exemple sur borg, on dirait que tu as besoin d'utiliser des "sous-parseurs".
Sinon, tu peux toujours parser toi-même les entrées et lever une erreur du parser.
# la solution est en utilisant les subparsers
Posté par mahikeulbody . Évalué à 4.
ArgumentParser.add_subparsers
Il ne me reste plus qu'à le mettre en œuvre mais comme c'est clairement fait pour cet usage selon la doc officielle, je devrais y arriver :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.