5

How do I check for a particular subparser?

import argparse
if __name__ == "__main__":
    mainparser = argparse.ArgumentParser()
    submainadder = mainparser.add_subparsers(title='subcommands')
    parser_ut = submainadder.add_parser('unittest')
    stuff = mainparser.parse_args()
    # if 'unittest' was selected:
    #     do_things()
Martijn Pieters
  • 963,270
  • 265
  • 3,804
  • 3,187
n611x007
  • 8,482
  • 7
  • 57
  • 95
  • 1
    Maybe you find useful this link http://stackoverflow.com/questions/17073688/how-to-use-argparse-subparsers-correctly – llrs Apr 29 '15 at 08:32
  • Have you tried giving `add_subparsers` a `dest='cmdname'` parameter? – hpaulj Apr 29 '15 at 22:26

1 Answers1

2

Maybe something like this ?

import argparse

def do_things(args):
    print args
    # Do your stuff

mainparser = argparse.ArgumentParser()
submainadder = mainparser.add_subparsers(title='subcommands')
parser_ut = submainadder.add_parser('unittest')
parser_ut.set_defaults(func=do_things)

if __name__ == "__main__":
    stuff = mainparser.parse_args()
    stuff.func(stuff)

More explanations can be found here:

python argparse - add action to subparser with no arguments?

Community
  • 1
  • 1
Timothée Jeannin
  • 9,022
  • 2
  • 53
  • 62
  • `dest='subcommand'` you may also add the `dest` keyword to `add_subparser` and highlight its existence and particular usefulness here – n611x007 Apr 29 '15 at 09:39