trying out the enum34 module.

What I want to create is a subclass of enum.Enum that is also
based on ctypes.c_int so that I can better use enum instances
in ctypes api calls.

When I do this, I get a metaclass conflict:


>>> class MyEnum(ctypes.c_int, enum.Enum):
...    FOOBAR = 0
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
>>>



When I do this, it does not work either:

>>> class MyEnum_meta(type(ctypes.c_int), type(enum.Enum)):
...     pass
...
>>> class MyEnum(ctypes.c_int, enum.Enum):
...     FOOBAR = 42
...     __metaclass__ = MyEnum_meta
...
>>> MyEnum.FOOBAR
42
>>>

It should have printed '<MyEnum.FOOBAR: 42>'.

Any ideas?

Thanks,
Thomas
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to