Support a method of copying function signature
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature
Capability to copy a functions signature, related to typing.ParamSpec.
def foo(a: str) -> None:
...
# pseudo code
def bar(*args: foo.args, **kwargs: foo.kwargs) -> foo.return_type:
return foo(*args, **kwargs)
Pitch
If I want to forward a call to another method in a type safe way it requires duplicating type definitions which can rapidly become unwieldy and error prone(especially if the function is in a third party module). I would love a way to just say that one functions signature is the same as another functions signature (with support for typing.Concatenate)
Maybe
extend functionality of ParamSpec to be generic to a Callable?
def bar(*args: ParamSpec[foo].args, **kwargs: ParamSpec[foo].kwargs) -> None:
return foo(*args, **kwargs)
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, die Beispiele des Issues und die Diskussion zu typing.ParamSpec und typing.Concatenate zu lesen. Sieh dir den zugehörigen basedmypy-Issue als Kontext an. Als abgeschlossen gilt die Definition und Implementierung eines vereinbarten Mechanismus zur Weiterleitung einer Funktionssignatur, einschließlich des Verhaltens für Argumente, Schlüsselwortargumente, Rückgabetypen und Concatenate.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100