dmypy's `--use-fine-grained-cache` crashes with `KeyError` on namespace packages
Abierto
Nadie ha tomado este issue todavía.
crash
topic-daemon
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
This is possibly related to #10735.
To Reproduce & Traceback
Create a minimal project as follows:
project/
mypy.ini
[mypy]
files = src/
src/
pkg/
__init__.py
nspkg/
mod.py
a: int = ""
Reproduce with these steps:
- Navigate to
project/ -
$ mypy --cache-fine-grained src/pkg/nspkg/mod.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment] -
(I don't think this should say$ dmypy run -- --use-fine-grained-cache Daemon started Success: no issues found in 2 source filesSuccessgiven the errors from Step 2., but that's a separate issue.) - Change
mod.py, e.g. modify the sole line toa: int = "a" - Run the daemon twice:
-
$ dmypy run -- --use-fine-grained-cache src/pkg/nspkg/mod.py:1: error: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment] -
$ dmypy run -- --use-fine-grained-cache Daemon crashed! Traceback (most recent call last): File ".../mypy/dmypy_server.py", line 237, in serve ... File ".../mypy/dmypy_server.py", line 768, in find_reachable_changed_modules worklist.append(BuildSource(graph[dep].path, graph[dep].id, followed=True)) ~~~~~^^^^^ KeyError: 'pkg.nspkg'
-
Your Environment
- Mypy version used: 1.19.1
- Python version used: Python 3.13
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
Reproduce el caso de paquete de espacio de nombres con dmypy y --use-fine-grained-cache, y luego inspecciona dmypy_server.py alrededor de find_reachable_changed_modules y la línea 768, donde el traceback busca pkg.nspkg en graph. Usa los comandos indicados para verificar que el daemon ya no se bloquea en la segunda ejecución y que sigue informando del error de asignación.
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
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100