[Cython] How to define C-consts in python module scope

Lisandro Dalcin dalcinl at gmail.com
Wed Jul 20 00:02:48 CEST 2011


On 19 July 2011 02:24, Vitja Makarov <vitja.makarov at gmail.com> wrote:
> 2011/7/18 Robert Bradshaw <robertwb at math.washington.edu>:
>> Trevor King and I discussed this quite a while back, but every time I
>> got around to looking at his code (I don't think he ever created a
>> formal pull request) something came up. The idea was that we could
>> support cpdef structs and extern functions as well.
>>
>
> That's interesting, I think I shouldn't hurry with my pull request.
>
> 2011/7/19 Robert Bradshaw <robertwb at math.washington.edu>:
>> On Mon, Jul 18, 2011 at 4:34 PM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
>>> My suggestion is
>>>
>>>  cdef exposed enum:
>>>    ...
>>
>> I agree, public is an overloaded word. This meaning is analogous to
>> its use for cdef class members. Perhaps we should use "api" for api
>> generation, and public used for Python-level access, with cpdef being
>> the preferred form for declaring Python-accessible types.
>>
>
> It seems to me that cpdef is more cythonic but exposed could be used
> in this case:
>
> cdef extern from "ev.h":
>    exposed enum:
>        EV_READ
>        EV_WRITE
>

And what about this?

cdef extern from "ev.h":
   cpdef enum:
       EV_READ
       EV_WRITE


BTW, how is this supposed to work with *.pxd files? I think the values
will be exposed just in the matching implementation .pyx file, and not
with cimport, right?

-- 
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169


More information about the cython-devel mailing list