Argparse: add method for retrieving the parsers of actions
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Feature or enhancement
Proposal:
I have a CLI interface with an argparse.ArgumentParser composed of a bunch of different actions. I was trying to validate if an argument had been set to a default value, and with just the main parser available, I was having some issues using get_default() working from the main parser, rather than the parsers for the various actions.
I ended up going with the following comparison, in order to reduce the amount of refactoring I would need to do, where args is the var holding the object returned from parse_args():
args.my_param == parser._actions[1].choices[args.action]].get_default(args.my_param)
I could also have solved this by adding a wrapper class holding all the subparsers in an object of some kind.
But - I think it would be nice to have a public method for accessing these action parsers, mostly for enabling this kind of use case.
Has this already been discussed elsewhere?
Not that I could find
Links to previous discussion of this feature:
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par argparse.ArgumentParser, la collection _actions du parser, les choix des subparser et get_default(). Déterminez la portée et le comportement prévus de la méthode publique permettant de récupérer les action parsers, notamment la manière dont elle doit prendre en charge le cas d’utilisation décrit pour la validation des valeurs par défaut. Le travail sera considéré comme terminé lorsque l’API et son comportement seront clairement définis et que le feature sera couvert par des tests appropriés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- cli
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100