Support __call__ on metaclasses
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Currently we don't handle __call__() on metaclasses correctly. For example:
class M(type):
def __call__(self, x: int) -> Any: ...
class C(metaclass=M): ...
C(x=1)
results in a false positive. Also similarly handling of metaclass __call__() in protocols is not very principled, see e.g. https://github.com/python/mypy/pull/14121
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 Metaklassenbeispiel im Issue zu reproduzieren und die zugehörige Protokolldiskussion in Pull Request 14121 zu untersuchen. Verfolge, wie call-Signaturen für gewöhnliche Klassen und Protokolle behandelt werden. Erledigt ist dies, wenn das Beispiel kein falsch positives Ergebnis mehr erzeugt und die Protokollbehandlung einer konsistenten Regel folgt.
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