argparse option argument with `nargs=argparse.REMAINDER` is misplaced in usage line
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 36k
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 558
Description
Bug report
When using an optional argument with nargs=argparse.REMAINDER, the argument appears within the list of optional arguments and before any positional arguments. I expected it to be placed last in usage line, which would better match the behavior since it consumes any following parameters. Not sure it is really bug...
The following scripts shows the issue:
#!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('foo')
parser.add_argument('--extra', nargs=argparse.REMAINDER)
parser.add_argument('--option')
args = parser.parse_args()
[--extra ...] is not at all last in the usage line:
$ ./test.py -h
usage: test.py [-h] [--extra ...] [--option OPTION] foo
positional arguments:
foo
options:
-h, --help show this help message and exit
--extra ...
--option OPTION
Your environment
- archlinux/amd64
- Tested on python 3.10.4 and also on 3.7.7 and 3.8.7.
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
Exécutez le script argparse minimal du rapport et examinez comment ArgumentParser formate sa ligne d’utilisation pour les appels à add_argument utilisant nargs=argparse.REMAINDER. Confirmez l’ordre actuel et identifiez les tests pertinents de formatage de l’utilisation d’argparse ou le point d’entrée correspondant. Le travail est terminé lorsque l’option remainder apparaît après les arguments positionnels dans la sortie d’utilisation, sans perturber l’ordre des autres options.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- cli
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100