On Fri, Jan 14, 2005 at 04:01:13PM +0100, Francesco Montorsi wrote: <snip> > PyObject *list = PyObject_Dir(m_pGlobals); > if (!list || PyList_Check(list) == FALSE) > return; > > for (int i=0,max=PyList_Size(list); i<max; i++) { > > PyObject *elem = PyList_GetItem(list, i); > if (PyCallable_Check(elem) != 0) { > > /* this should be a function.. */ > /* HERE IS THE PROBLEM: this code is never reached */ > PyObject *str = PyObject_GetAttrString(elem, "func_name"); > } > } > ============================================== > > Everything seems to work but then when scanning the list returned > by PyObject_Dir() I never find any callable object.... > what am I doing wrong ?
You are checking the list of strings returned from the dir() to see if any of them are callable (they aren't). You mean to check the thing that the string is a name for, so instead of # callable(name) PyCallable_Check(elem) use # callable(globals()[name]) PyCallable_Check(PyDict_GetItem(m_pGlobals, elem)) -Jack -- http://mail.python.org/mailman/listinfo/python-list