TypeIs for isinstance
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 5.1k
- Forks
- 2.1k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 82
Beschreibung
Apologies if I'm missing something obvious, but I checked issues and PR's and haven't seen this mentioned explicitly.
Could isinstance use TypeIs?
With multiples checks it could return an union, with one type T a TypeIs[T].
I often find myself writing one-liner helpers functions that just call isinstance, see this script for example:
https://github.com/OutSquareCapital/pyochain/blob/master/scripts/check_docstrings.py
This both add boilerplate and a performance tax due to a double function call overhead.
I'm very often using lambdas with fluent interfaces, e.g
res = (
my_iterator
.map(lambda x: ...)
.filter(lambda x: isinstance(x, int)
)
Assuming my_iterator is an Iterator[Any], it would be fantastic if it could be narrowed to Iterator[int] without having to define a separate TypeIs function.
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 verlinkten Beispiel scripts/check_docstrings.py und dem angeforderten Verhalten von isinstance/TypeIs. Kläre, wie einzelne und mehrere Prüfungen Typen eingrenzen sollten, und ermittle anschließend die benötigten typeshed-Stubs und Tests, um dieses Verhalten zu validieren; abgeschlossen ist die Aufgabe, wenn der Vorschlag ein definiertes Typisierungsergebnis und die entsprechende Abdeckung enthält.
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
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100