Type `_order_` field in `Enum`
Offen
Dieses Issue hat noch niemand übernommen.
feature
topic-enum
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 54
Beschreibung
Right now this code passes type checking:
from enum import Enum
class E(Enum):
_order_ = 'X Y Z' # Should be 'X Y'
X = 1
Y = 2
But, in runtime it fails:
» python out/ex.py
Traceback (most recent call last):
File "/Users/sobolev/Desktop/mypy/out/ex.py", line 3, in <module>
class E(Enum):
File "/Users/sobolev/.pyenv/versions/3.10.0/lib/python3.10/enum.py", line 348, in __new__
raise TypeError('member order does not match _order_')
TypeError: member order does not match _order_
We need to check that _order_ field is valid.
This can be a great addition to my "better Enums" series of PRs.
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, mypy bei der Verarbeitung von Python-Enum-Klassendefinitionen nachzuverfolgen, und reproduziere das Beispiel des Issues mit dem nicht übereinstimmenden Wert von _order_. Die Arbeit ist abgeschlossen, wenn die Typprüfung eine ungültige Member-Reihenfolge meldet, eine übereinstimmende Reihenfolge jedoch akzeptiert, und gezielte Tests beide Fälle abdecken.
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
- 35/100