False positive on re.compile as attrs converter
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
I've found what I think is a bug in mypy's attrs support.
# test.py
import re
import attr
@attr.s
class Test:
foo = attr.ib(converter=re.compile)
test = Test("foo")
$ mypy test.py
test.py:8: error: Argument 1 to "Test" has incompatible type "str"; expected "Union[AnyStr, Pattern[AnyStr]]"
Unless I've completely misunderstood what AnyStr is for, I don't think that signature should throw on receiving a string.
I can't quite figure out if attrs or mypy is at fault here, but I can't get the same error to appear on re.compile when it's not being applied as a converter by attrs. Apologies if I've missed an obvious issue here.
Python v3.6.5
Mypy v0.610
Attrs v18.1.0
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 damit, den Bericht mit der gezeigten test.py zu reproduzieren, und vergleiche mypys Verarbeitung von re.compile allein mit seiner Verarbeitung als attrs-Konverter. Verfolge die Typinferenz des attrs-Konverters und die daraus resultierende Prüfung des Konstruktorarguments. Als erledigt gilt die Aufgabe, wenn Test("foo") akzeptiert wird, ohne die gültige Konvertertypisierung abzuschwächen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100