Contrôler la mise en forme de la argparse l'aide de la liste d'arguments?
import argparse
parser = argparse.ArgumentParser(prog='tool')
args = [('-u', '--upf', 'ref. upf', dict(required='True')),
('-s', '--skew', 'ref. skew', {}),
('-m', '--model', 'ref. model', {})]
for args1, args2, desc, options in args:
parser.add_argument(args1, args2, help=desc, **options)
parser.print_help()
De sortie:
usage: capcheck [-h] -u UPF [-s SKEW] [-m MODEL]
optional arguments:
-h, --help show this help message and exit
-u UPF, --upf UPF ref. upf
-s SKEW, --skew SKEW ref. skew
-m MODEL, --model MODEL
ref. model
Comment puis-je imprimer réf. modèle dans la même ligne que -m MODEL, --model MODEL
à la place de celui qui apparaît sur une ligne distincte lorsque je lance le script avec -h
option?
Vous devez vous connecter pour publier un commentaire.
À fournir
formatter_class
argument:Remarque: la mise en Œuvre de
argparse.HelpFormatter
est privé, seul le nom est public. Par conséquent, le code pourrait arrêter de travailler dans les futures versions deargparse
. Déposer une demande de fonctionnalité pour fournir une interface publique pour la personnalisation demax_help_position
sur http://bugs.python.org/De sortie
Inspiré par @jfs réponse, je suis venu avec cette solution:
Avoir que, vous pouvez l'appeler avec n'importe quel
HelpFormatter
que vous aimez:ou
Ce que ce fait est assurez-vous que l'ensemble de formateur peut effectivement être créé à l'aide de la
width
etmax_help_position
arguments. Si le privé, les changements de l'API, qui est noté parmake_wide
par unTypeError
et le formateur est retourné à l'identique. Cela devrait rendre le code plus fiable pour les applications déployées.J'avais accueillons toutes les suggestions pour le rendre plus pythonic.