mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-11 22:41:55 +08:00
explicitly mark value and label types on choices enum (#406)
In addition to the meta properties added to the Choices enums, value and label are set for each choice. This commit explicitly types those instead of the tuple value and non-extant label types
This commit is contained in:
@@ -10,6 +10,10 @@ class ChoicesMeta(enum.EnumMeta):
|
|||||||
|
|
||||||
class Choices(enum.Enum, metaclass=ChoicesMeta):
|
class Choices(enum.Enum, metaclass=ChoicesMeta):
|
||||||
def __str__(self): ...
|
def __str__(self): ...
|
||||||
|
@property
|
||||||
|
def label(self) -> str: ...
|
||||||
|
@property
|
||||||
|
def value(self) -> Any: ...
|
||||||
|
|
||||||
# fake
|
# fake
|
||||||
class _IntegerChoicesMeta(ChoicesMeta):
|
class _IntegerChoicesMeta(ChoicesMeta):
|
||||||
@@ -18,7 +22,9 @@ class _IntegerChoicesMeta(ChoicesMeta):
|
|||||||
labels: List[str] = ...
|
labels: List[str] = ...
|
||||||
values: List[int] = ...
|
values: List[int] = ...
|
||||||
|
|
||||||
class IntegerChoices(int, Choices, metaclass=_IntegerChoicesMeta): ...
|
class IntegerChoices(int, Choices, metaclass=_IntegerChoicesMeta):
|
||||||
|
@property
|
||||||
|
def value(self) -> int: ...
|
||||||
|
|
||||||
# fake
|
# fake
|
||||||
class _TextChoicesMeta(ChoicesMeta):
|
class _TextChoicesMeta(ChoicesMeta):
|
||||||
@@ -27,4 +33,6 @@ class _TextChoicesMeta(ChoicesMeta):
|
|||||||
labels: List[str] = ...
|
labels: List[str] = ...
|
||||||
values: List[str] = ...
|
values: List[str] = ...
|
||||||
|
|
||||||
class TextChoices(str, Choices, metaclass=_TextChoicesMeta): ...
|
class TextChoices(str, Choices, metaclass=_TextChoicesMeta):
|
||||||
|
@property
|
||||||
|
def value(self) -> str: ...
|
||||||
|
|||||||
Reference in New Issue
Block a user