[Cython] Pure python mode
Ondrej Certik
ondrej at certik.cz
Wed Nov 5 15:52:56 CET 2008
On Wed, Nov 5, 2008 at 2:52 PM, Stefan Behnel <stefan_ml at behnel.de> wrote:
> Ondrej Certik wrote:
>> one drawback is that I still need to use .pxd files to
>> declare cdef functions. Example:
>>
>> @cython.locals(n=cython.int)
>> def fact(n):
>> ...
>>
>> in order for this to become a "cdef int foo()" function, I need to
>> have this line in foo.pxd:
>>
>> cdef int fact(int n)
>>
>> (And then the @cython decorator is not necessary). I'd like to have
>> everything in the .py file. Could that be approached by for example
>> something like:
>>
>> @cython.locals(n=cython.int, _return=cython.int, cdef=True)
>> def fact(n):
>> ...
>
> That would block calling a local variable "cdef", which would be valid
> Python. Calling it _cdef might solve this, but having "_return" blocked
> already is bad enough.
>
> How about a generic decorator @cython.cdef ?
>
> @cython.cdef
> @cython.locals(n=cython.int, _return=cython.int)
> def fact(n):
> ...
>
> would become
>
> cdef int fact(int n):
> ...
Yes, that looks perfectly ok. And the same for extension classes.
Ondrej
More information about the Cython-dev
mailing list