Perhaps I don't understand the question, but I would just call
add_subparsers() on the main parser, and then again call
add_subparsers() on each of the child parsers you create, e.g.:
main_parser = argparse.ArgumentParser()
main_subparsers = main_parser.add_subparsers()
option1_parser = main_subparsers.add_parser('option1')
option1_subparsers = option1_parser.add_subparsers()
option1_subparsers.add_parser('cmd1')
option1_subparsers.add_parser('cmd2')
option2_parser = main_subparsers.add_parser('option2')
option2_subparsers = option2_parser.add_subparsers()
option2_subparsers.add_parser('cmd3')
option2_subparsers.add_parser('cmd4')
main_parser.parse_args()
Steve
--
Where did you get that preposterous hypothesis?
Did Steve tell you that?
--- The Hiphopopotamus