argparse: choices + exclusive_group?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
p90
User
Beiträge: 198
Registriert: Donnerstag 22. Juli 2010, 17:30

Hi,

habe folgendes Problem:
Habe ein Argument, dass per choices dem Benutzer eine Liste von Möglichkeiten anbietet.
Zusätlich biete ich einen Schalter an, der nur Sinn ergibt, wenn er NICHT mit einer dieser
Optionen verwendet wird. Nun könnte man dies ja, wenn es kein choices Argument wäre dies über
exclusive_groups lösen was vermutlich hier aber eben wegen des choices Arguments nicht geht.
Hier mal ein vereinfachtes Beispiel:

Code: Alles auswählen

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--mode', dest='mode', action='store', default='mode1', choices=('mode1', 'mode2'), type=str)
parser.add_argument('--mode2-extra', dest='mode2-extra', action='store_false')
valide sollen nun sein:
--mode mode1
--mode mode2
--mode mode2 --mode2-extra
invalide soll sein:
--mode mode1 --mode2-extra

Wie kann ich dies am geschicktesten Implementieren, am besten noch so, dass argparse mit die Arbeit abnimmt und dem User erklärt das er das nicht darf?
Oder muss ich erst die Argumente Parsen lassen und dann einen Extracheck einführen und dann dem User selber Sagen, dass er das nicht darf`?
Euch noch einen schönen Abend,

p91
BlackJack

@p90: Würde ich nachträglich prüfen.
Antworten