python / python/mypy

Add `new_typeinfo` to public plugin API for both SemanticAnalyzer and TypeChecker

Offen
#8,257 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

In django-stubs, it's used in a lot of places to generate one-off classes.

For semanal, there's https://github.com/python/mypy/blob/master/mypy/semanal.py#L3029, which used for the special casing of NamedTuple/TypedDict/others, which basically plugins in the core.

For type checking, there's no equivalent, but similar code is used here https://github.com/python/mypy/blob/master/mypy/checker.py#L3659

It would be also nice to be able to specify more than one base class.

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

Lies zuerst mypy/semanal.py#L3029 und mypy/checker.py#L3659 und vergleiche dabei die bestehenden einmaligen Pfade zur Klassenerstellung, die von Plugins und der Typprüfung verwendet werden. Definiere die öffentliche Plugin-API sowohl für SemanticAnalyzer als auch für TypeChecker, einschließlich der Unterstützung mehrerer Basisklassen; abgeschlossen ist die Aufgabe, wenn beide Einstiegspunkte sie für die Verwendung im Stil von django-stubs bereitstellen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
compilers
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.