super(type, cls).__new__ saying not an instance when it is
Offen
Dieses Issue hat noch niemand übernommen.
bug
priority-1-normal
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
When upgrading to the latest mypy I started getting a weird new error. Here's a simplified example:
class X:
def __new__(cls) -> "X":
return super(type, cls).__new__(cls) # error: Argument 2 for "super" not an instance of argument 1
However:
>>> isinstance(X, type)
True
My settings: mypy 0.730
[mypy]
python_version=3.6
incremental=True
ignore_missing_imports=True
follow_imports=normal
warn_redundant_casts=True
warn_unused_ignores=True
strict_optional=True
no_implicit_optional=True
disallow_untyped_defs=True
disallow_any_generics=True
(Note: I'm using super to skip an inherited __new__ when I create the object.)
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 damit, das minimale X.new-Beispiel mit mypy 0.730 auszuführen, und untersuche, wie der Checker super(type, cls) und den new-Aufruf behandelt. Im Bericht werden keine Quelldateien oder Tests genannt; als erledigt gilt die Arbeit, wenn das gültige Beispiel den instance-type error nicht mehr erzeugt und diese Regression durch Tests abgedeckt ist.
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
- 35/100