Как заставить `help` действовать так же, как` --help` в argparse - PullRequest
4 голосов
/ 21 сентября 2011

Я хочу, чтобы опция help действовала так же, как --help.

sidenote : Я создал программу с тем же поведением командной строки, что и svn или hg. Мне удалось сделать это с подпарсерами. Однако я хочу сделать вещи последовательными. Вот почему я хочу, чтобы help работал.

Ответы [ 2 ]

4 голосов
/ 23 сентября 2011

Вы можете сделать следующее, чтобы создать псевдоним и заставить program help действовать так же, как program --help

import argparse

def help(args):
    args.parser.print_help()

parser = argparse.ArgumentParser(description='my program')
subparsers = parser.add_subparsers()
p_help = subparsers.add_parser('help')
p_help.set_defaults(func=help, parser=parser)

args = parser.parse_args()
args.func(args)
0 голосов
/ 21 сентября 2011

Мне кажется, что вы хотите определить help как другой подпарасер.Я бы наивно сказал, что вы можете затем связать его с функцией print_help (), которая будет копировать выходные данные вашего стандартного --help, но мне интересно, есть ли способ вызвать встроенную функцию help ().

...