python / python/mypy

get_dynamic_class_hook() doesn't work for inlined callls

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

Dieses Issue hat noch niemand übernommen.

bug priority-1-normal topic-plugins
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

This is currently supported using get_dynamic_class_hook():

Base = some.custom_class('Base', ...)

class Model(Base):
    ...

But it doesn't work if the call is inlined, which can often be annoying:

class Model(some.custom_class('Base', ...)):  # the hook is not called here
    ...

We can support the second use case by calling the same hook with the l.h.s. name set to None.

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 damit, die bestehende Behandlung von get_dynamic_class_hook() nachzuverfolgen und zu untersuchen, wie der Name der linken Seite für die separate Zuweisungsform übergeben wird. Füge eine Abdeckung für einen Inline-Aufruf von custom_class() in einer Klassenbasis hinzu und prüfe, welche Arbeit ausgeführt wird, wenn der Hook für diese Form mit dem auf None gesetzten Namen der linken Seite aufgerufen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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