Message1331
ok,
it appears that python's implementation has special getDoc code for this situation:
static PyObject *
type_get_doc(PyTypeObject *type, void *context)
{
PyObject *result;
if (!(type->tp_flags & Py_TPFLAGS_HEAPTYPE) && type->tp_doc != NULL)
return PyString_FromString(type->tp_doc);
result = PyDict_GetItemString(type->tp_dict, "__doc__");
if (result == NULL) {
result = Py_None;
Py_INCREF(result);
}
else if (result->ob_type->tp_descr_get) {
result = result->ob_type->tp_descr_get(result, NULL,
(PyObject *)type);
}
else {
Py_INCREF(result);
}
return result;
}
http://svn.python.org/view/python/trunk/Objects/typeobject.c?rev=52245&view=markup
By overriding the getDoc for PyType we can add an additional check for a "__get__" implementation. If not null we call __get__ on the return value.
There is a patch for this up here:
http://sourceforge.net/tracker/index.php?func=detail&aid=1639663&group_id=12867&atid=312867
leouser |
|
Date |
User |
Action |
Args |
2008-02-20 17:17:37 | admin | link | issue1605006 messages |
2008-02-20 17:17:37 | admin | create | |
|