[Cython] Pure python mode
Robert Bradshaw
robertwb at math.washington.edu
Sat Oct 4 13:42:20 CEST 2008
I polished off some more of the pure python mode stuff tonight. I
just pushed it to cython-devel. Now you can do stuff like:
> import cython # you need a single file to be in your path to use
> it in pure Python mode, provided (and installed) with Cython
>
> @cython.locals(x=int, y=cython.p_int)
> def foo(x):
> y = cython.cast(cython.p_int, x)
> print x + cython.sizeof(y) + cython.sizeof(cython.p_int)
> if cython.compiled:
> print "the compiler was run
> else:
> print "just being interpreted"
>
> x = cython.declare(int)
> xx = cython.declare(cython.p_int)
> xx = cython.address(x)
>
> MyStruct = cython.struct(x=int, y=int, data=cython.pp_double)
>
> a = cython.declare(MyStruct)
> a.x = 5
>
> T = cython.typedef(MyStruct)
> b = cython.declare(cython.pointer(T))
> b[0].x = 4
On top of this, you can write a .pxd file to accompany your .py file
and it will coerce your .py file classes and def statements into cdef
and cpdef versions.
It's still very new and probably highly experimental (though it only
modifies the cython.* nodes, so it shouldn't cause any regressions).
Let me know what you think.
- Robert
More information about the Cython-dev
mailing list