python / python/mypy

reveal_type should indicate untyped defs with types

Offen
#10,509 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature topic-reveal-type
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Feature

It's possible to make a def that's simultaneously typed and untyped eg: https://mypy-play.net/?mypy=latest&python=3.9&flags=disallow-untyped-calls&gist=7946ef5bbce794503defa44284147e56

Here Lock is "untyped" but appears to be a main.py:17: note: Revealed type is 'def () -> main.Lock'

Pitch
reveal_type should let me know that this object has an untyped constructor:

main.py:17: note: Revealed type is 'Untyped[def () -> main.Lock']

See also https://github.com/python/mypy/issues/5943#issuecomment-516075196

this tripped up the anyio project in the definition of anyio.Lock https://github.com/agronholm/anyio/pull/289

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

Beginne mit dem verknüpften mypy-play-Beispiel und dem im Issue beschriebenen bestehenden Verhalten von reveal_type. Ermittle, wie reveal_type Definitionen darstellen sollte, die sowohl typisiert als auch nicht typisiert sind, und überprüfe anschließend, dass die Ausgabe den nicht typisierten Konstruktor unterscheidet und dabei den aufgedeckten Funktionstyp beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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