2 different `Dialect` types - one in `csv` module and other in `_csv` module
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
Consider this code:
from csv import get_dialect
def foo(s: str):
dialect = get_dialect(s)
reveal_type(dialect)
mypy reports
dialects.py:6: note: Revealed type is "_csv.Dialect"
One would expect the result would be csv.Dialect.
There are 2 classes called Dialect in typeshed:
https://github.com/python/typeshed/blob/2480d7e7c74493a024eaf254c5d2c6f452c80ee2/stdlib/_csv.pyi#L28
and
https://github.com/python/typeshed/blob/2480d7e7c74493a024eaf254c5d2c6f452c80ee2/stdlib/csv.pyi#L61
get_dialect() is imported in csv.pyi from _csv.pyi, so the declaration in _csv.pyi is returning _csv.Dialect instead of csv.Dialect, so the type checkers see that as 2 separate classes.
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 Vergleich von stdlib/_csv.pyi und stdlib/csv.pyi und konzentriere dich dabei auf die importierte Deklaration von get_dialect und die beiden Dialect-Klassen. Führe das reproduzierende mypy-Snippet aus und bestätige, dass reveal_type csv.Dialect statt _csv.Dialect meldet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 52/100