mypy confuses module with contents at import time
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Here's a minimal repro:
.
└── example
├── __init__.py
├── cell.py
└── component.py
1 directory, 3 files
λ cat example/__init__.py
from example.cell import cell
import example.component
λ cat example/cell.py
def cell() -> str:
return "asdf"
λ cat example/component.py
import example
x: str = example.cell()
And this gives you:
λ mypy example
example/component.py:3: error: Module not callable
Found 1 error in 1 file (checked 3 source files)
Despite the fact that things work at runtime:
λ python -c 'import example; print(example.component.x)'
asdf
cc @joamatab
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
Reproduzieren Sie den Bericht mit example/init.py, example/cell.py und example/component.py, und führen Sie dann mypy example sowie den gezeigten Python-Laufzeitbefehl aus. Verfolgen Sie, wie der Import von example.cell dargestellt wird, wenn example.component.py example.cell() aufruft; als erledigt gilt die Aufgabe, wenn mypy den gültigen Aufruf akzeptiert, ohne Fehler für das aus drei Dateien bestehende Beispiel einzuführen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100