argparse exclusive argument group error unintelligible
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 35.9k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
Bug report
Bug description:
import argparse
import os.path
parser = argparse.ArgumentParser()
parser.add_argument(
"--debug",
action="store_true",
help="print out debugging information",
)
# Added optional branch argument
parser.add_argument(
"-b",
"--branch",
default="main",
help="branch name to store commits in (default: main)",
)
parser.add_argument(
"--non-interactive",
action="store_true",
help="disable interactive prompts for missing author information, pass --yes to lfs import",
)
parser.add_argument(
"--template",
default=os.path.join(
os.path.dirname(__file__), "template"
),
help="add files from this directory to every revision",
)
parser.add_argument(
"--object-format",
default="sha256",
help="git object format to use (default: sha256)",
)
parser.add_argument(
"--changelog",
nargs="?",
const=pkg_base,
help="use changelog for commit messages, "
f"package name is guessed ({pkg_base}) or can be specified",
)
repo_group = parser.add_mutually_exclusive_group(required=True)
repo_group.add_argument(
"--stdout",
action="store_true",
help="output git fast-import data to stdout",
)
repo_group.add_argument(
"repository",
nargs="?",
help="import package into this git repository if --stdout is not given",
)
args = parser.parse_args()
$ python3 osc_fast_export.py
usage: osc_fast_export.py [-h] [--debug] [-b BRANCH] [--non-interactive] [--template TEMPLATE]
[--object-format OBJECT_FORMAT] [--changelog [CHANGELOG]] (--stdout |
repository)
osc_fast_export.py: error: one of the arguments --stdout repository is required
The sentence
one of the arguments --stdout repository is required
is unintelligible. I wrote the code so I know why the output is like this but this is supposed to be read by a user who never looked at the code. The grammar of that sentence is broken.
CPython versions tested on:
3.13
Operating systems tested on:
Linux
Linked PRs
- gh-157134
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pelo ponto de entrada de argparse para mutually exclusive-group mostrado no relatório e reproduza o comando sem --stdout nem repository. Rastreie o diagnóstico resultante sobre o argumento obrigatório e sua cobertura existente; considera-se concluído quando a mensagem voltada ao usuário for gramatical e explicar claramente o requisito, com um teste de regressão para este caso.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- cli
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 30/100