sublime/voussoir/argparse_multi.sublime-snippet

35 lines
921 B
XML

<snippet>
<content><![CDATA[
import argparse
import sys
from voussoirkit import vlogging
log = vlogging.getLogger(__name__, '$1')
def $2_argparse(args):
return $2()
def main(argv):
argv = vlogging.set_level_by_argv(log, argv)
parser = argparse.ArgumentParser(description=__doc__)
subparsers = parser.add_subparsers()
p_$2 = subparsers.add_parser('$2')
p_$2.add_argument('required_positional')
p_$2.add_argument('optional_positional', nargs='?', default=None)
p_$2.add_argument('-k', '--kwarg', dest='kwarg', default=None)
p_$2.add_argument('-b', '--boolkwarg', dest='boolkwarg', action='store_true')
p_$2.set_defaults(func=$2_argparse)
args = parser.parse_args(argv)
return args.func(args)
if __name__ == '__main__':
raise SystemExit(main(sys.argv[1:]))
]]></content>
<tabTrigger>argparse_multi</tabTrigger>
<scope>source.python</scope>
</snippet>