Skip to content

Instantly share code, notes, and snippets.

@nackjicholson
Created May 23, 2017 23:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nackjicholson/54c999da6299a2c5aefe920f2937e897 to your computer and use it in GitHub Desktop.
Save nackjicholson/54c999da6299a2c5aefe920f2937e897 to your computer and use it in GitHub Desktop.
Python argparse subparser command functions with kwargs
import argparse
parser = argparse.ArgumentParser(prog='cl')
subparsers = parser.add_subparsers()
def foo(beep, boop):
print beep, boop
def bar(baz):
print baz
foo_parser = subparsers.add_parser('foo')
foo_parser.add_argument('beep')
foo_parser.add_argument('boop')
foo_parser.set_defaults(func=foo)
bar_parser = subparsers.add_parser('bar')
bar_parser.add_argument('baz')
bar_parser.set_defaults(func=bar)
args = parser.parse_args()
command_args = vars(args).copy()
del command_args['func']
args.func(**command_args)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment