6

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
  • 1,048,767
  • 296
  • 4,058
  • 3,343
n611x007
  • 8,952
  • 8
  • 59
  • 102
  • 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,652
  • 2
  • 56
  • 65
  • `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