I am trying to access the internal structure of a Python long. The code
fragment below works when I use Pyrex 0.9.8.4 but generates a compile error
when using Cython 0.9.8.

Is there a better way to access the internals of a Python long?

What is causing the cimport error and how can I fix it?

Thanks,

casevh

------------------------------------------------------

The code:

 cdef extern from "Python.h":
    ctypedef struct PyTypeObject:
        pass
    ctypedef struct PyObject:
        Py_ssize_t ob_refcnt
        PyTypeObject * ob_type
cdef extern from "longintrepr.h":
    cdef struct _longobject:
        int ob_refcnt
        PyTypeObject * ob_type
        int ob_size
        unsigned int * ob_digit
def test(temp = long(0)):
    cdef _longobject *l
    l = <_longobject *> temp
    print sizeof(l.ob_size)
    print sizeof(l.ob_digit[0])

The error:

Error converting Pyrex file to C:
------------------------------------------------------------
...
        int ob_size
        unsigned int * ob_digit
def test(temp = long(0)):
    cdef _longobject *l
    l = <_longobject *> temp
    print sizeof(l.ob_size)
                 ^
------------------------------------------------------------

/home/case/code/cvh.pyx:16:18: 'cvh.test' is not a cimported module
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to