python / python/cpython

`argparse._SubParsersAction.add_parser` should default to `description` matching `help`

Aberta
#135,227 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

stdlib type-feature
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Feature or enhancement

Proposal:
import argparse

# create the top-level parser
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('--foo', action='store_true', help='foo help')
subparsers = parser.add_subparsers(help='subcommand help')

# create the parser for the "a" command
parser_a = subparsers.add_parser('a', help='a help')
parser_a.add_argument('bar', type=int, help='bar help')

# create the parser for the "b" command
parser_b = subparsers.add_parser('b', help='b help', description='b help')
parser_b.add_argument('--baz', choices=('X', 'Y', 'Z'), help='baz help')

# parse the args
print(parser.parse_args())

This currently produces:

gsnedders@gsnedders-margot tmp.IKpGQE2mE3 % python3.13 test.py --help  
usage: PROG [-h] [--foo] {a,b} ...

positional arguments:
  {a,b}       subcommand help
    a         a help
    b         b help

options:
  -h, --help  show this help message and exit
  --foo       foo help
gsnedders@gsnedders-margot tmp.IKpGQE2mE3 % python3.13 test.py a --help
usage: PROG a [-h] bar

positional arguments:
  bar         bar help

options:
  -h, --help  show this help message and exit
gsnedders@gsnedders-margot tmp.IKpGQE2mE3 % python3.13 test.py b --help
usage: PROG b [-h] [--baz {X,Y,Z}]

b help

options:
  -h, --help     show this help message and exit
  --baz {X,Y,Z}  baz help

It would be nicer, however, if add_parser's description parameter defaulted to the value of the help argument.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

https://github.com/python/cpython/issues/89438 considered not outputting the value of help here to be a bug, but was closed because the description parameter also exists.

Linked PRs
  • gh-135236

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece em argparse._SubParsersAction.add_parser e analise o PR vinculado gh-135236 para entender o comportamento proposto. A tarefa estará concluída quando um subparser usar seu texto de ajuda como descrição padrão, enquanto uma descrição fornecida explicitamente continuar efetiva, e o comportamento relevante de argparse estiver coberto por testes.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
cli
Tipo de issue
Funcionalidade
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.