С python argparse, как сделать подкоманду необходимым аргументом? Я хочу сделать это, потому что я хочу, чтобы argparse выходил из строя, если подкоманда не указана. Вместо этого я переопределяю метод ошибки для печати справки. У меня есть 3-глубокие вложенные подкоманды, поэтому это не вопрос просто обработки нулевых аргументов на верхнем уровне.
В следующем примере, если это так называется, я получаю:
$./simple.py
$
Вместо этого я хочу, чтобы вместо этого argparse сообщал, что требуемая подкоманда не указана:
import argparse
class MyArgumentParser(argparse.ArgumentParser):
def error(self, message):
self.print_help(sys.stderr)
self.exit(0, '%s: error: %s\n' % (self.prog, message))
def main():
parser = MyArgumentParser(description='Simple example')
subs = parser.add_subparsers()
sub_one = subs.add_parser('one', help='does something')
sub_two = subs.add_parser('two', help='does something else')
parser.parse_args()
if __name__ == '__main__':
main()