[Python-checkins] bpo-42727: [Enum] use super() and include **kwds (GH-23927)

ethanfurman webhook-mailer at python.org
Thu Dec 24 22:31:18 EST 2020


https://github.com/python/cpython/commit/786d97a66cac48e7a933010367b8993a5b3ab85b
commit: 786d97a66cac48e7a933010367b8993a5b3ab85b
branch: master
author: Ethan Furman <ethan at stoneleaf.us>
committer: ethanfurman <ethan at stoneleaf.us>
date: 2020-12-24T19:31:10-08:00
summary:

bpo-42727: [Enum] use super() and include **kwds (GH-23927)

for multiple inheritance support:

use super().new
pass **kwds to super().new

files:
M Lib/enum.py

diff --git a/Lib/enum.py b/Lib/enum.py
index 36a9a400a1162..75249bfdc1be1 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -235,10 +235,10 @@ def __new__(metacls, cls, bases, classdict, **kwds):
         # 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:



More information about the Python-checkins mailing list