35 lines
921 B
XML
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>
|