Validity of `collections.deque` as `typing.Sequence`
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
Hi
Based on this discussion on pyright: https://github.com/microsoft/pyright/discussions/7989#discussioncomment-9548709
A collections.deque is a valid typing.Sequence. However, typing.Sequence allows being sliceable, while a collections.deque does not support slicing. This makes room to make errors that is not caught by static type checkers like pyright and mypy.
It seems like this normally would be reported, but the errors are suppressed by type-ignore comments found here.
Is there any other way of handling this so that trying to slice a deque would result in a type-error?
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 stdlib/collections/init.pyi etwa bei Zeile 258 und lies die verknüpfte Pyright-Diskussion. Vergleiche, wie pyright und mypy mit den aktuellen type-ignore-Kommentaren und der Beziehung von deque zu Sequence umgehen. Die Aufgabe ist abgeschlossen, wenn eine mit typeshed kompatible Möglichkeit zur Darstellung der Einschränkung beim Slicing identifiziert und vereinbart wurde und das relevante Verhalten der Checker berücksichtigt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100