Using parameter 'action' in function 'argparse.ArgumentParser.add_subparsers'

Abierto
#92,811 17 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
cli

Línea de trabajo

Reproduce el ejemplo de ArgParserTest.py en Python 3.10.4 y, a continuación, inspecciona argparse.py alrededor de la línea 1798 y la documentación de los subcomandos de argparse. Determina si add_subparsers admite action y haz que el comportamiento resultante, el mensaje de error o la documentación sean coherentes; la finalización debe incluir la cobertura del ejemplo indicado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

stdlib type-bug

Bug report
The function argparse.ArgumentParser.add_subparsers throws an error regarding parser_class, when passing the parameter action.

Sample-code "ArgParserTest.py":

from argparse import ArgumentParser

parser = ArgumentParser(prog='Testcase for ArgumentParser._subparsers')
# init subparsers for parser
subparsers = parser.add_subparsers(action='count') # Any action works to reproduce.
# Add my_subparser with any "action"
my_subparser = subparsers.add_parser(name='my_subparser')

Terminal output:

> python ArgParserTest.py
Traceback (most recent call last):
  File "REDACTED\ArgParserTest.py", line 5, in <module>
    subparsers = parser.add_subparsers(dest='subcommands', action='count', help='Available subcommands. Run \'<subcommand> -h\' to display further information.')
  File "REDACTED\Python3.10.4\lib\argparse.py", line 1798, in add_subparsers
    action = parsers_class(option_strings=[], **kwargs)
TypeError: _CountAction.__init__() got an unexpected keyword argument 'parser_class'

Possible resolutions

  1. If there is no valid action to subparsers:
    a. Have the error-message complain about the argument action instead of parser_class.
    b. Remove the argument action from the parameter list to the add_subparser-function.
    c. Update the documentation accordingly.
  2. If action can be a valid argument, fix either the error-message or whatever error did occur.

Environment

  • Tested on: Python 3.10.4
  • Operating system: Win10 x64 (Version 21H2, Build 19044.1706)
Lenguaje dominante
Python
Estrellas
77.2k
Forks
36k
Merge medio
1 d 9 h
PR fusionados (30 d)
558

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de python/cpython

Todos los issues de python/cpython

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.