functools.partial false negative with higher order functions
Offen
Dieses Issue hat noch niemand übernommen.
bug
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
See https://github.com/python/mypy/pull/17425 , in particular this comment https://github.com/python/mypy/pull/17425#discussion_r1650028681 from ilevkivskyi
[case testFunctoolsPartialHigherOrder]
from functools import partial
from typing import Callable
def fn(a: int, b: str, c: bytes) -> int: ...
def callback1(fn: Callable[[str, bytes], int]) -> None: ...
def callback2(fn: Callable[[str, int], int]) -> None: ...
callback1(partial(fn, 1))
# TODO: false negative
callback2(partial(fn, 1))
[builtins fixtures/tuple.pyi]
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 mit dem Fall testFunctoolsPartialHigherOrder im referenzierten Pull Request und lies den verlinkten Diskussionskommentar, um das beabsichtigte Verhalten zu verstehen. Überprüfe, dass callback1(partial(fn, 1)) weiterhin akzeptiert wird, während callback2(partial(fn, 1)) abgelehnt wird, und führe anschließend die relevante mypy-Testsuite aus.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100