Pythonのargparseで特定のオプションが指定されている時はrequiredを抑制したい
以下の例では-m
をrequired指定していますが、--version
が指定されたときは、-m
が未指定でも、バージョン情報を出力して終了する、ということをやりたいです。何か方法はないでしょうか?
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pkg_resources
import sys
import argparse
argparser = argparse.ArgumentParser(
description='This tool will help local development of mbed',
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
argparser.add_argument(
'-m', '--target',
required=True,
help='Compile target MCU. @see https://github.com/ARMmbed/mbed-cli')
argparser.add_argument(
'--version',
required=False,
default=False,
action='store_true',
help='Print version info')
args = argparser.parse_args()
if args.version:
print('xmbedinit {}'.format(
pkg_resources.require('xmbedinit')[0].version))
sys.exit()