diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-02-03 16:00:04 +0100 |
|---|---|---|
| committer | Carlton Gibson <carlton.gibson@noumenal.es> | 2021-02-04 10:51:41 +0100 |
| commit | ff25791d2312c7886e6dd256c0ae2b869f72c4f1 (patch) | |
| tree | 390d42096602b97df5d0a1c147d722ad969dc0ea | |
| parent | cb680b681913d64642501dafe81704e56abaa4bf (diff) | |
[3.2.x] Refs #32074 -- Fixed TextChoices/IntegerChoices crash on Python 3.10.
EnumMeta has a new keyword argument 'boundary' in Python 3.10. This
is a new mechanism that controls how out-of-range / invalid bits are
handled, see https://bugs.python.org/issue38250.
Backport of 5d9b065d3f93de056588dfee6f1776294dd8bab2 from master
| -rw-r--r-- | django/db/models/enums.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/django/db/models/enums.py b/django/db/models/enums.py index 51821a2b45..f04698b9f6 100644 --- a/django/db/models/enums.py +++ b/django/db/models/enums.py @@ -8,7 +8,7 @@ __all__ = ['Choices', 'IntegerChoices', 'TextChoices'] class ChoicesMeta(enum.EnumMeta): """A metaclass for creating a enum choices.""" - def __new__(metacls, classname, bases, classdict): + def __new__(metacls, classname, bases, classdict, **kwds): labels = [] for key in classdict._member_names: value = classdict[key] @@ -25,7 +25,7 @@ class ChoicesMeta(enum.EnumMeta): # Use dict.__setitem__() to suppress defenses against double # assignment in enum's classdict. dict.__setitem__(classdict, key, value) - cls = super().__new__(metacls, classname, bases, classdict) + cls = super().__new__(metacls, classname, bases, classdict, **kwds) cls._value2label_map_ = dict(zip(cls._value2member_map_, labels)) # Add a label property to instances of enum which uses the enum member # that is passed in as "self" as the value to use when looking up the |
