`isinstance(_, Callable)` reports `[arg-type]`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Bug Report
isinstance(_, collections.abc.Callable) is allowed at runtime, but is reported
(A clear and concise description of what the bug is.)
To Reproduce
from collections.abc import Callable
assert isinstance(int, Callable)
Expected Behavior
for isinstance(_, collections.abc.Callable) to behave identically to callable(_):
- no error
_: Tis narrowed to_: <callable subtype of T>
Actual Behavior
main.py:2: error: Argument 2 to "isinstance" has incompatible type "<typing special form>"; expected "_ClassInfo" [arg-type]
https://mypy-play.net/?mypy=latest&python=3.13&gist=463e1edfbfc8cefc268fce8544b0b49b
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
Beginne mit dem Reproducer main.py und dem verlinkten mypy-play-Beispiel, unter Verwendung von Python 3.13 und der neuesten mypy-Version. Verfolge, wie isinstance() collections.abc.Callable behandelt, und vergleiche dies mit der Typ-Eingrenzung durch callable(). Als abgeschlossen gilt die Aufgabe, wenn das Beispiel keinen arg-type-Fehler erzeugt und den Wert auf einen aufrufbaren Subtyp eingrenzt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100