In numpy.pxd I want to have this:

ctypedef npy_int64 int64

and be able to use it like this (this is what a NumPy user would expect 
to do):

cimport numpy
cdef numpy.ndarray[numpy.int64, 2] = numpy.zeros([10, 10], numpy.int64)

This however creates an error:
'int64' is not a constant, variable or function identifier

since int64 is declared as a type in the scope.

I've had rather complicated and grand schemes for this earlier, but what 
I'll propose this time is much simpler: When not in a "type context" 
(what you are writing cannot possibly be a C type), C types vanish from 
the scope/are not considered .. so that the ctypedef numpy.int64 does not

Warning! In theory, this principle could allow code like

x = 4
ctypedef int x
cdef x v = x

If you didn't like this but have time, you could have a look at

http://wiki.cython.org/enhancements/runtimectypes

which is another proposal I could use to achieve my ends, however I'm 
reluctant to think or discuss something going so much into language 
design right now.

-- 
Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to