python / python/mypy

Indexing tuple with `slice` object results in wrong type

Offen
#9,200 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug priority-1-normal
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Example:

x = (1, 2, 3)
y = x[1:3]
z = x[slice(1, 3)]
reveal_locals()

Output from mypy:

note: Revealed local types are:
note:     x: Tuple[builtins.int, builtins.int, builtins.int]
note:     y: Tuple[builtins.int, builtins.int]
note:     z: builtins.int

I believe z should also have type Tuple[builtins.int, builtins.int], or at a minimum Tuple[builtins.int, ...].

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Führe zunächst das bereitgestellte Beispiel zur Tuple-Indizierung mit mypy aus und vergleiche die inferierten Typen für die Slice-Syntax und ein explizites Slice-Objekt. Verfolge anschließend den Typprüfpfad für die Tuple-Indizierung und füge eine Abdeckung hinzu, die zeigt, dass z als Tuple inferiert wird, und bestätige, dass der aufgedeckte Typ mit dem beabsichtigten Ergebnis übereinstimmt.

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
Klar beschrieben
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.