Créer des arguments cachés avec Python argparse

115

Est-il possible d'ajouter un argument à un python argparse.ArgumentParsersans qu'il n'apparaisse dans l'utilisation ou help ( script.py --help)?

Peter Smit
la source

Réponses:

163

Oui, vous pouvez définir l' helpoption add_argumentsur argparse.SUPPRESS. Voici un exemple de la documentation 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
la source
Ensuite, il apparaît simplement comme test ==SUPPRESS==. Au moins lorsqu'il est utilisé avec add_parser.
Thomas Ahle
1

Je le fais en ajoutant une option pour activer les cachés, et je saisis cela en regardant sysv.args.

Si vous faites cela, vous devez inclure l'argument spécial que vous choisissez sys.argvdirectement dans la liste d'analyse si vous supposez que l'option est -sd'activer les options masquées.

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
la source
Une sysv.argsfaute de frappe pour sys.argv?
pppery le
C'est une solution raisonnable (une fois que ma modification pour corriger les fautes de frappe est acceptée).
Siwel le