]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-42727: [Enum] use super() and include **kwds (GH-23927)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 25 Dec 2020 16:07:30 +0000 (08:07 -0800)
committerGitHub <noreply@github.com>
Fri, 25 Dec 2020 16:07:30 +0000 (08:07 -0800)
for multiple inheritance support:

use super().new
pass **kwds to super().new
(cherry picked from commit 786d97a66cac48e7a933010367b8993a5b3ab85b)

Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
Lib/enum.py

index aa9f4b00dd74d55734b89557bcaf4f0082fbdd68..1c22380f03b38ce02e17eefda96d034f9481c386 100644 (file)
@@ -227,10 +227,10 @@ class EnumMeta(type):
         # create our new Enum type
         if bases:
             bases = (_NoInitSubclass, ) + bases
-            enum_class = type.__new__(metacls, cls, bases, classdict)
+            enum_class = super().__new__(metacls, cls, bases, classdict, **kwds)
             enum_class.__bases__ = enum_class.__bases__[1:] #or (object, )
         else:
-            enum_class = type.__new__(metacls, cls, bases, classdict)
+            enum_class = super().__new__(metacls, cls, bases, classdict, **kwds)
         old_init_subclass = getattr(enum_class, '__init_subclass__', None)
         # and restore the new one (if there was one)
         if new_init_subclass is not None: