Wie kann ich Subparser-Argumente in einem separaten Namespace mit argparse haben?
Ich habe folgenden Testcode
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbose", default = 0, type=int)
subparsers = parser.add_subparsers(dest = "parser_name")
parser_lan = subparsers.add_parser('car')
parser_lan.add_argument("--boo")
parser_lan.add_argument("--foo")
parser_serial = subparsers.add_parser('bus')
parser_serial.add_argument("--fun")
print parser.parse_args()
Dies definiert zwei Unterparser mit unterschiedlichen Argumenten. Wenn ich den Testcode als anrufe
tester.py --verbose 3 car --boo 1 --foo 2
Ich bekomme das erwartete Ergebnis
Namespace(boo='1', foo='2', parser_name='car', verbose=3)
Was ich stattdessen haben möchte, sind die Werte von jedem Subparser in einem separaten Namespace oder Diktat, so etwas wie
Namespace(subparseargs={boo:'1', foo:'2'}, parser_name='car', verbose=3)
so dass die Argumente von jedem Subparser logisch getrennt von den Argumenten vom Hauptparser sind (alsverbose
in diesem Beispiel).
Wie kann ich das erreichen, mit den Argumenten für jeden Subparser in dergleich Namespace (subparseargs
im Beispiel).