Passing wrong number of arguments to generic produces runtime errors

Abierto
#157,810 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Comienza reproduciendo el fallo reportado de parámetros genéricos a través de la ruta de typing.py mostrada en el traceback y, a continuación, compara la validación correspondiente en typing_extensions.py. El problema se resuelve cuando se establece el comportamiento previsto para un número incorrecto de argumentos genéricos y se cubre con una prueba de regresión sin romper el uso válido de typing en tiempo de ejecución.

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

Descripción

stdlib topic-typing type-feature

In pypa/hatch#2437, we see a change to a generic type, adding an extra parameter, causing a run-time failure, and since this was used in a build plugin, it cause a build failure and my package to fail to install.

pdm.exceptions.BuildError: Build backend raised error: Showing the last 10 lines of the build output:
    class GitInfoBuildHook(BuildHookInterface[Any]):
                           ~~~~~~~~~~~~~~~~~~^^^^^
  File "/usr/lib/python3.12/typing.py", line 398, in inner
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/typing.py", line 1083, in _generic_class_getitem
    _check_generic(cls, params, len(cls.__parameters__))
  File "/tmp/pdm-build-env-4xoutxun-shared/lib/python3.12/site-packages/typing_extensions.py", line 3274, in _check_generic
    raise TypeError(f"Too {'many' if alen > elen else 'few'} arguments"
TypeError: Too few arguments for <class 'hatchling.builders.hooks.plugin.interface.BuildHookInterface'>; actual 1, expected at least 2

I find this behavior fairly surprising; I would only expect type errors in an annotation to cause errors when doing typechecking, not runtime errors like this.

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.