mypy assumes `importlib.metadata` is implicitly imported via `importlib`?
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Merge medio
- 1 d 18 h
- PR fusionados (30 d)
- 54
Descripción
Bug Report
mypy seems to assume that import importlib brings in the relevant submodules (though I can't see anything in typeshed that would indicate this?) even though it does not
importlib.metadata is not implicitly brought in by importlib:
$ python3 -c 'import importlib; importlib.metadata'
Traceback (most recent call last):
File "<string>", line 1, in <module>
AttributeError: module 'importlib' has no attribute 'metadata'
To Reproduce
import importlib
reveal_type(importlib.metadata) # expected error but none?
import urllib
reveal_type(urllib.parse) # similar situation but properly errors!
Expected Behavior
I expect two errors, but I only get one
Actual Behavior
$ mypy t.py
t.py:3: note: Revealed type is "types.ModuleType"
t.py:7: error: Module has no attribute "parse" [attr-defined]
t.py:7: note: Revealed type is "Any"
Found 1 error in 1 file (checked 1 source file)
Your Environment
- Mypy version used: 1.13.0
- Mypy command-line flags: n/a
- Mypy configuration options from
mypy.ini(and other config files): n/a - Python version used: 3.13.0
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción mínima en t.py y ejecútala con mypy 1.13.0 en Python 3.13. Compara cómo gestiona mypy importlib.metadata con respecto a urllib.parse y, después, sigue el procesamiento de imports responsable de los diagnósticos diferentes. Se considera terminado cuando mypy informe del acceso faltante a importlib.metadata y conserve el error existente de urllib.parse.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 45/100