python / python/mypy

Add a plugin hook for handling function/method decorators

Offen
#9,915 0 Kommentare 9 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

Feature

mypy currently has the get_class_decorator_hook plugin hook. I want to propose adding a get_function_decorator_hook and get_method_decorator_hook.

Pitch

Adding these hooks would allow special handling of decorated functions, as would for example be required to solve #9911 using a plugin. mypy currently has special handling for a few decorated such as builtins.property, typing.final and more, but from what I can see it's currently not possible to add additional cases using a plugin.

I have already experimented with this a bit and could probably open a PR in the near future.

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

Beginnen Sie mit der Überprüfung von mypy's bestehendem get_class_decorator_hook-Plugin-Hook und der Behandlung dekorierter Funktionen, einschließlich builtins.property und typing.final. Definieren Sie die entsprechenden Funktions- und Methodendekorator-Hooks, damit Plugins zusätzliche dekorierte Fälle behandeln können, und überprüfen Sie anschließend, dass die Hooks den im Issue #9911 beschriebenen vorgesehenen Anwendungsfall unterstützen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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