From 8f5bf01a1cc02241952094f574c7794428c147bb Mon Sep 17 00:00:00 2001 From: Ethan Furman Date: Thu, 24 Dec 2020 19:31:10 -0800 Subject: [PATCH] bpo-42727: [Enum] use super() and include **kwds (GH-23927) for multiple inheritance support: use super().new pass **kwds to super().new (cherry picked from commit 786d97a66cac48e7a933010367b8993a5b3ab85b) Co-authored-by: Ethan Furman --- Lib/enum.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/enum.py b/Lib/enum.py index aa9f4b00dd74d55..1c22380f03b38ce 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -227,10 +227,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: