"Untyped decorator makes function untyped" false positive on decorator with union type
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
from typing import Callable, ParamSpec, TypeVar
T = TypeVar("T")
P = ParamSpec("P")
class C:
def __call__(self, arg: Callable[P, T]) -> Callable[P, T]:
return arg
foo: C | Callable[[Callable[P, T]], Callable[P, T]]
@foo
def bar() -> None:...
use case: i have to define a decorator conditionally that can be either one of these two very similar types
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 verlinkte mypy-play-Beispiel mit den angegebenen Strictness-Flags auszuführen, und untersuche den Pfad der Typprüfung von Dekoratoren für die Union aufrufbarer Typen. Erledigt ist die Aufgabe, wenn dieser Reproducer nicht mehr den False Positive meldet und dabei die erwartete Typisierung von bar weiterhin erhalten bleibt; füge Regressionstests hinzu oder aktualisiere sie, falls die vorhandenen Tests des Repositorys den relevanten Fall abdecken.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 42/100