Criação de argumentos ocultos com Python argparse

115

É possível adicionar um argumento a um python argparse.ArgumentParsersem que ele apareça no uso ou em help ( script.py --help)?

Peter Smit
fonte

Respostas:

163

Sim, você pode definir a helpopção add_argumentpara argparse.SUPPRESS. Aqui está um exemplo da documentação do argparse :

>>> parser = argparse.ArgumentParser(prog='frobble')
>>> parser.add_argument('--foo', help=argparse.SUPPRESS)
>>> parser.print_help()
usage: frobble [-h]

optional arguments:
  -h, --help  show this help message and exit
srgerg
fonte
Em seguida, ele apenas aparece como test ==SUPPRESS==. Pelo menos quando usado com add_parser.
Thomas Ahle
1

Eu faço isso adicionando uma opção para habilitar os ocultos, e agarro olhando para sysv.args.

Se você fizer isso, terá que incluir o argumento especial escolhido sys.argvdiretamente na lista de análise se você presumir que a opção é -shabilitar opções ocultas.

parser.add_argument('-a', '-axis',
                    dest="axis", action="store_true", default=False,
                    help="Rotate the earth")
if "-s" in sys.argv or "-secret" in sys.argv:
    parser.add_argument('-s', '-secret',
                        dest="secret", action="store_true", default=False,
                        help="Enable secret options")
    parser.add_argument('-d', '-drill',
                        dest="drill", action="store_true", default=False,
                        help="drill baby, drill")
rob boudrie
fonte
É sysv.argsum erro de digitação sys.argv?
pppery
Esta é uma solução razoável (uma vez que minha edição para corrigir os erros seja aceita).
Siwel