예제 #1
0
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));
}
예제 #2
0
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);
}
예제 #3
0
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;
}
예제 #4
0
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, &copy);
		}
	}
	PyErr_SetString(PyExc_AttributeError, name);
	return NULL;
}