python - Resolving enum34 metaclass conflict? -
is there way custom metaclass play nice enum34 package (pre python 3)?
import enum import 6 class mymeta(type): def __new__(cls, class_name, bases, class_dict): print("does useful.") return super(mymeta, cls).__new__(cls, class_name, bases, class_dict) @six.add_metaclass(mymeta) class myclass(object): def __init__(self, *args, **kwargs): pass myenum = enum.enum('myenum', [('one', 1), ('two', 2), ('three', 3)], type=myclass)
the above raises error in enum34 @ enum_class = super(enummeta, metacls).__new__(metacls, cls, bases, classdict)
:
typeerror: metaclass conflict: metaclass of derived class must (non-strict) subclass of metaclasses of bases
you should derive mymeta
enum.enum
's metaclass:
class mymeta(type(enum.enum)): ...
Comments
Post a Comment