On Aug 3, 2008, at 12:44 PM, Dag Sverre Seljebotn wrote:

> 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)

Yes.

> This however creates an error:
> 'int64' is not a constant, variable or function identifier
>
> since int64 is declared as a type in the scope.

Where is this error being thrown from? Perhaps it could/should be  
checked after the buffer transforms?

> 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

I'm not completely following that, but it looks scary.

> 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.


I'm not sure I like that proposal either.

- Robert



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

Reply via email to