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 786d97a66c)

Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
This commit is contained in:
Miss Islington (bot) 2020-12-25 08:07:30 -08:00 committed by GitHub
parent 51f5029146
commit fbffda25b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View 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: