[Python-Dev] [Python-checkins] peps: Pre-alpha draft for PEP 435 (enum). The name is not important at the moment, as

Ethan Furman ethan at stoneleaf.us
Mon Feb 25 04:32:17 CET 2013


On 02/24/2013 05:40 PM, Barry Warsaw wrote:
> On Feb 23, 2013, at 04:02 PM, Stefan Krah wrote:
>
>>> +Ordered comparisons between enumeration values are *not* supported.  Enums
>>> are +not integers!
>>
>> Hmm. I think this limits interoperation with C libraries and prototyping
>> C code.
>
> This is mostly a red-herring.  flufl.enum values are C-level int compatible
> without actually *being* ints.
>
> E.g.
>
> static PyObject *
> intcompat_printint(PyObject *self, PyObject *args)
> {
>      int value;
>      if (!PyArg_ParseTuple(args, "i", &value))
>          return NULL;
>
>      printf("and the value is: %d\n", value);
>      Py_RETURN_NONE;
> }
>
>>>> from _intcompat import *
>>>> printint(7)
> and the value is: 7
>>>> from flufl.enum import make
>>>> Colors = make('Colors', 'red green blue'.split())
>>>> printint(Colors.green)
> and the value is: 2

Okay, that's pretty cool.

I would still like the int subclass, though, as it would be an aid to me on the Python side.

--
~Ethan~


More information about the Python-Dev mailing list