Is there a way to get the unparsed args after multiple argparse.parse_known_args()
calls?
For example, I've got the following code:
import argparse, sys
def parse1():
parser = argparse.ArgumentParser()
parser.add_argument("--foo", action="store_true")
args = parser.parse_known_args()[0]
print("foo: ", args.foo)
def parse2():
parser = argparse.ArgumentParser()
parser.add_argument("--bar", action="store_true")
args, unknown = parser.parse_known_args()
print("bar: ", args.bar)
print("unknown: ", unknown)
sys.argv += ["--foo", "--bar", "--last"]
parse1()
parse2()
"""
Outputs:
foo: True
bar: True
unknown: ['--foo', '--last']
"""
I wish to somehow get the unknown vars of only '--last'
, which was not parsed in parse1()
or parse2()
Any ideas how?
What I ended up doing:
def pop_unknown_args(parser: ArgumentParser) -> Namespace:
args, unknown = parser.parse_known_args()
sys.argv = [sys.argv[0]] + unknown
return args
hpaulj, thanks for the comment