python / python/cpython

Improve UX by using fully-qualified name in some `TypeError`

Offen
#138,978 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

interpreter-core type-feature
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Feature or enhancement

Proposal:

The error message TypeError: Can't instantiate abstract class FOO without an implementation for abstract methods 'BAR' doesn't tell me with module FOO comes from.

This is unfortunate, particularly in larger code bases where several FOO-ish classes live in distinct modules but have the same local name: discovering which class triggered the problem may require nontrivial code analysis.

Thus I propose to extend this error message so that it reports the module name, i.e. abstract class BAZ.BAR.FOO, instead.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs
  • gh-156683

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

Der Issue identifiziert die TypeError-Meldung für abstrakte Klassen als Einstiegspunkt; prüfe zuerst den verknüpften PR gh-156683, um den aktuell vorgeschlagenen Umfang zu sehen. Bestätige, dass das fertige Verhalten in diesem Fehler den modulqualifizierten Namen der Klasse ausgibt, ohne die Details zu den abstrakten Methoden zu verlieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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