Fixed-size, multi-type sequence
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne mit dem Lesen von python/typeshed#2287 und den Beispielen in diesem Issue und überprüfe anschließend, wie typing derzeit Tupel, Iterables und Sequenzen darstellt. Das Issue nennt keine Implementierungsdateien oder Tests; als abgeschlossen würde eine abgestimmte Design für Annotationen gelten, die die beschriebenen Eingaben unterstützt und dabei nützliche Einschränkungen bei der Typprüfung beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
This came up in python/typeshed#2287, but I have encountered the same problem myself. As far as I know, currently the only way to annotate a multi-type, fixed length sequence is using Tuple. But for input types this is often too strict:
def foo(x: Tuple[int, str]) -> None:
a, b = x
def bar(x: Tuple[int, str]) -> None:
a = x[0]
b = x[1]
The implementations accept any iterable (first case) or sequence (second case) that yield two values:
class Iter:
def __iter__(self):
yield 1
yield ""
foo((1, ""))
foo([1, ""])
foo(Iter())
bar((1, ""))
bar([1, ""])
It would be useful to have a way to annotate this. Of course type checkers would still need to reject generic cases like this:
def foo(x: TupleLike[str, str]): ...
x: List[str] = ...
foo(x)
But it could allow some things that are not possible at the moment, and opens the possibility for future improvements.
- Vorherrschende Sprache
- Python
- Sterne
- 1.8k
- Forks
- 302
- Ø Merge
- 23 Std.
- Gemergte PRs (30 T.)
- 8
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/typing
-
topic: typing spec
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
topic: typing spec
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
topic: documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
-
topic: documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
topic: conformance tests topic: typing spec
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
Ähnliche Issues
-
bug confirmed issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
open-webui/open-webui#30750 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100