2017-10-12 3 views
0

Je suis actuellement la construction d'une extension à une bibliothèque existante qui utilise argparse.ArgumentParser() pour ingérer des arguments cli, et ont ajouté mon propre argparse.ArgumentParser() en utilisant parse_known_args() pour analyser les arguments que je veux injecter avant de passer les arguments restants sur à la mise en œuvre de la bibliothèque existante. Je fais ceci au lieu d'ajouter les arguments à la bibliothèque sous-jacente de sorte que si la bibliothèque sous-jacente change, tout devrait toujours fonctionner. Cependant, lorsque je passe le drapeau --help, mon implémentation de argparse.ArgumentParser() saisit cet indicateur, affiche l'aide pour mes arguments injectés, puis interrompt l'exécution pour qu'elle n'atteigne jamais le message d'aide de la bibliothèque sous-jacente.Argparse combiner directives --help

Je n'arrive pas à déterminer s'il existe un moyen de combiner les directives d'aide pour les implémentations argparse.ArgumentParser() (si cela est même possible) ou comment ignorer l'indicateur d'aide dans mon implémentation. Mes arguments ajoutés sont pour le débogage seulement et ne sont pas essentiels à afficher à l'utilisateur final de ma bibliothèque étendue, donc s'il y a un moyen d'ignorer l'indicateur d'aide dans mon implémentation, ce serait OK, bien que pas idéal.

+1

Cela ressemble à un travail pour ['add_help = False'] (https://docs.python.org/2/library/argparse.html#add-help). – user2357112

Répondre

0

Je pense que cela peut être une réponse à votre question. add_help = Faux, mais ajouté aux sous-commandes et aux sous-parties. Python argparse - disable help for subcommands?

+0

Pas tout à fait, c'est pour une utilisation avec des sous-processeurs dans argparse. Cependant, je crois que le fait de changer mon modèle pour utiliser des sous-processeurs pourrait être ce que je cherche à "combiner" les implémentations d'argparse qui sont définies. Je vais essayer ça. – asdf

+0

laissez-moi savoir si cela fonctionne. C'est ce que j'avais en tête. – jimh