dmypy's `--use-fine-grained-cache` crashes with `KeyError` on namespace packages
Offen
Dieses Issue hat noch niemand übernommen.
crash
topic-daemon
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere den Namespace-Package-Fall mit dmypy und --use-fine-grained-cache und untersuche anschließend dmypy_server.py im Umfeld von find_reachable_changed_modules und Zeile 768, wo der Traceback in graph nach pkg.nspkg sucht. Verwende die aufgeführten Befehle, um zu überprüfen, dass der Daemon beim zweiten Lauf nicht mehr abstürzt und weiterhin den Zuweisungsfehler meldet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100