Ich benutze argparse und ich habe verschiedene Gruppen, die ihre eigenen Optionen gesetzt haben.Hilfe anpassen zwischen Gruppen in argparse
Jetzt mit der --help Option Ich möchte nicht alle Optionen standardmäßig anzeigen. Nur eine Gruppe von Gruppenoptionen soll für --help angezeigt werden.
Gruppe Andere Optionen sollten auf der Grundlage anderen Hilfeoptionen angezeigt werden, wie --help_1
, --help_2
:
Zum Beispiel:
--help' to show Group 2 and 3
--help_1' to show Group 11 and 12
--help_2' to show Group 22 and 23
Ich weiß, dass wir die Standard-Option --help bei der Verwendung von deaktivieren können add_help = False aber wie bekomme ich nur ausgewählte gruppenspezifische Hilfe angezeigt.
Wir können die Liste der Gruppen aus dem Parser _action_groups bekommen Attribut, aber sie setzen keine print_help() Option als solche.
Mein Beispielcode:
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--help_a', action='store_true')
parser.add_argument('--help_b', action='store_true')
group1 = parser.add_argument_group("Feature 1")
group1.add_argument('--foo1')
group2 = parser.add_argument_group("Feature 2")
group2.add_argument('--foo2')
group3 = parser.add_argument_group("Feature 3")
group3.add_argument('--foo3')
# TODO: --help_a to only print "Feature 1" groups help
# and --help_b to print Feature 2 and 3's help.
EDIT: Mit subparser
und das Hinzufügen von Parsern (statt Gruppe) wird die oben lösen. Aber Subparser passt in meinem Fall nicht, da ich es immer parsiere, muss ich nur Hilfe anpassen, um angezeigt zu werden.
Warum nicht "weniger" durchgehen? 'python command.py --help | weniger " –
Das scheint in meinem Fall nicht richtig. Ich möchte nicht, dass der externe Benutzer meine API oder das Skript verwendet, um auf seiner Seite zu analysieren. Das Skript sollte es alleine behandeln. – baky
Ich verstehe es nicht. Können Sie weitere Informationen hinzufügen, welche Gruppen Sie verwenden und warum Sie verschiedene Hilfeseiten anzeigen möchten? –