python / python/mypy

false positive flags superclass method as undefined

Offen
#17,322 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug Report

mypy incorrectly complains that the __setstate__ method is undefined in the multiprocessing.Queue

Here is where __setstate__ is defined:

https://github.com/python/cpython/blob/0480fd628a33351be868460c6febc09541ac722c/Lib/multiprocessing/queues.py#L62

To Reproduce

https://mypy-play.net/?mypy=latest&python=3.12&flags=verbose%2Ccheck-untyped-defs&gist=31e5a18f3d712b3e9991216bb8013bd7

Expected Behavior

I expected no typechecking errors.

Actual Behavior

If you run the included gist above you will see:

main.py:12: error: "__setstate__" undefined in superclass  [misc]
Found 1 error in 1 file (checked 1 source file)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Führen Sie die verlinkte mypy-play-Reproduktion mit Python 3.12 und den aufgeführten Flags aus und vergleichen Sie anschließend die Diagnose mit der in CPython's Lib/multiprocessing/queues.py verlinkten setstate-Definition. Verfolgen Sie die Suche nach der Methode der Oberklasse, die den Fehler „undefined“ erzeugt, und fügen Sie einen Regressionstest für den Gist-Fall hinzu oder aktualisieren Sie ihn. Erledigt ist die Aufgabe, wenn die Reproduktion keine Type-Checking-Fehler meldet, ohne Regressionen einzuführen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.