On Aug 2, 2008, at 7:53 PM, Case Vanhorsen wrote: > 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?
FYI, this has been resolved. The problem is whether to interpret a.b as a cimported type (from the module a) or an attribute. This decision is made at parsing, and Pyrex assumed one way and Cython the other. I've made it accept both. > > > 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 _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
