python / python/mypy

New semantic analyzer: allow redefinition of star-imported functions if type is the same

Abierto
#6,950 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

false-positive priority-1-normal semantic-analyzer
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Consider this test case:

[case testReExportOtherSameType]
from low_level import *

def func(arg: str) -> int:
    ...

[file low_level.py]
def func(arg: str) -> int:
    ...

It is currently allowed by old analyzer (likely by accident), but prohibited by the new one. Old analyzer still prohibits this if the function is imported by name instead of star import. Although behavior of the new analyzer is more consistent, it may be sometimes useful to allow the redefinition (for example when star import re-exports hundred functions).

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.

Línea de trabajo

Comienza con el caso de prueba testReExportOtherSameType y sus dos archivos, que muestran una importación con asterisco desde low_level.py seguida de una definición con la misma firma. Lee cómo el nuevo analizador semántico gestiona las funciones importadas con asterisco y compáralo con el analizador antiguo. Se considera completado cuando el comportamiento previsto de redefinición del mismo tipo está cubierto por una prueba que pasa, sin cambiar el comportamiento independiente de las importaciones con nombre.

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

Evaluación

Stack tecnológico
python
Área
devtools
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.