static PyObject * filter_getattr(filterobject *self, char *name) { PyObject *res; res = Py_FindMethod(filterobjectmethods, (PyObject *)self, name); if (res != NULL) return res; PyErr_Clear(); if (strcmp(name, "name") == 0) { if (! self->f->frec->name) { Py_INCREF(Py_None); return Py_None; } else { return PyString_FromString(self->f->frec->name); } } else if (strcmp(name, "req") == 0) { if (! self->request_obj) { Py_INCREF(Py_None); return Py_None; } else { Py_INCREF(self->request_obj); return (PyObject *)self->request_obj; } } else return PyMember_GetOne((char*)self, find_memberdef(filter_memberlist, name)); }
static PyObject * member_get(PyMemberDescrObject *descr, PyObject *obj, PyObject *type) { PyObject *res; if (descr_check((PyDescrObject *)descr, obj, &res)) return res; return PyMember_GetOne((char *)obj, descr->d_member); }
static PyObject *_drizzle_ConnectionObject_getattr( _drizzle_ConnectionObject *self, char *name) { if (strcmp(name, "closed") == 0) { return PyInt_FromLong((long)!(self->open)); } PyMemberDef *l; for (l = _drizzle_ConnectionObject_memberlist; l->name != NULL; l++) { if (strcmp(l->name, name) == 0) { return PyMember_GetOne((char *)self, l); } } PyErr_SetString(PyExc_AttributeError, name); return NULL; }
PyObject * PyMember_Get(char *addr, struct memberlist *mlist, char *name) { struct memberlist *l; if (strcmp(name, "__members__") == 0) return listmembers(mlist); for (l = mlist; l->name != NULL; l++) { if (strcmp(l->name, name) == 0) { PyMemberDef copy; copy.name = l->name; copy.type = l->type; copy.offset = l->offset; copy.flags = l->flags; copy.doc = NULL; return PyMember_GetOne(addr, ©); } } PyErr_SetString(PyExc_AttributeError, name); return NULL; }