mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-10 05:51:53 +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):
|
||||
def __str__(self): ...
|
||||
@property
|
||||
def label(self) -> str: ...
|
||||
@property
|
||||
def value(self) -> Any: ...
|
||||
|
||||
# fake
|
||||
class _IntegerChoicesMeta(ChoicesMeta):
|
||||
@@ -18,7 +22,9 @@ class _IntegerChoicesMeta(ChoicesMeta):
|
||||
labels: List[str] = ...
|
||||
values: List[int] = ...
|
||||
|
||||
class IntegerChoices(int, Choices, metaclass=_IntegerChoicesMeta): ...
|
||||
class IntegerChoices(int, Choices, metaclass=_IntegerChoicesMeta):
|
||||
@property
|
||||
def value(self) -> int: ...
|
||||
|
||||
# fake
|
||||
class _TextChoicesMeta(ChoicesMeta):
|
||||
@@ -27,4 +33,6 @@ class _TextChoicesMeta(ChoicesMeta):
|
||||
labels: 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