Tworzenie ukrytych argumentów za pomocą Pythona argparse

Odpowiedzi:

163

Tak, możesz ustawić helpopcję add_argumentna argparse.SUPPRESS. Oto przykład z dokumentacji 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
źródło
Wtedy po prostu pojawia się jako test ==SUPPRESS==. Przynajmniej w połączeniu z add_parser.
Thomas Ahle
1

Robię to, dodając opcję włączenia ukrytych i łapię to, patrząc sysv.args.

Jeśli to zrobisz, musisz dołączyć specjalny argument, który wybrałeś sys.argvbezpośrednio na liście parsowania, jeśli zakładasz, że opcja polega -sna włączeniu ukrytych opcji.

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
źródło
Czy sysv.argsto literówka sys.argv?
pppery
To rozsądne rozwiązanie (gdy moja edycja poprawiająca literówki zostanie zaakceptowana).
Siwel