static int generic_setattr(genericobject *g, char *name, PyObject *v) { int ret; if (v == NULL) { PyErr_SetString(PyExc_TypeError, "can't delete forms object attributes"); return -1; } /* "label" is an exception: setmember doesn't set strings; and FORMS wants you to call a function to set the label */ if (strcmp(name, "label") == 0) { if (!PyString_Check(v)) { PyErr_SetString(PyExc_TypeError, "label attr must be string"); return -1; } fl_set_object_label(g->ob_generic, PyString_AsString(v)); return 0; } ret = PyMember_Set((char *)g->ob_generic, generic_memberlist, name, v); /* Rather than calling all the various set_object_* functions, we call fl_redraw_object here. This is sometimes redundant but I doubt that's a big problem */ if (ret == 0) fl_redraw_object(g->ob_generic); return ret; }
static int PyGtkPSFont_SetAttr(PyGtkPSFont_Object *self, char *attr, PyObject *value) { return PyMember_Set((char *) self->psfont, PyGtkPSFont_members, attr, value); }
static int func_setattr(PyFunctionObject *op, char *name, PyObject *value) { if (PyEval_GetRestricted()) { PyErr_SetString(PyExc_RuntimeError, "function attributes not settable in restricted mode"); return -1; } if (strcmp(name, "func_code") == 0) { if (value == NULL || !PyCode_Check(value)) { PyErr_SetString( PyExc_TypeError, "func_code must be set to a code object"); return -1; } } else if (strcmp(name, "func_defaults") == 0) { if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString( PyExc_TypeError, "func_defaults must be set to a tuple object"); return -1; } if (value == Py_None) value = NULL; } return PyMember_Set((char *)op, func_memberlist, name, value); }
static int CS_COMMAND_setattr(CS_COMMANDObj *self, char *name, PyObject *v) { if (v == NULL) { PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute"); return -1; } return PyMember_Set((char *)self, CS_COMMAND_memberlist, name, v); }
static int psyco_conn_setattr(connobject *self, char *name, PyObject *v) { if (v == NULL) { PyErr_SetString(PyExc_AttributeError, "cannot delete attribute"); return -1; } return PyMember_Set((char *)self, psyco_conn_memberlist, name, v); }
static int filter_setattr(filterobject *self, char *name, PyObject *v) { if (v == NULL) { PyErr_SetString(PyExc_AttributeError, "can't delete filter attributes"); return -1; } return PyMember_Set((char *)self, filter_memberlist, name, v); }
static int PgVersion_setattr(PgVersion *self, char* attr, PyObject *value) { if (value == NULL) { PyErr_SetString(PyExc_AttributeError, "can't delete PgVersion attributes"); return -1; } return PyMember_Set((char *)self, PgVersion_members, attr, value); }
static int form_setattr(formobject *f, char *name, PyObject *v) { if (v == NULL) { PyErr_SetString(PyExc_TypeError, "can't delete form attributes"); return -1; } return PyMember_Set((char *)f->ob_form, form_memberlist, name, v); }
static int request_setattr(requestobject *self, char *name, PyObject *value) { if (value == NULL) { PyErr_SetString(PyExc_AttributeError, "can't delete request attributes"); return -1; } else if (strcmp(name, "content_type") == 0) { self->request_rec->content_type = ap_pstrdup(self->request_rec->pool, PyString_AsString(value)); self->content_type_set = 1; return 0; } else if (strcmp(name, "filename") == 0) { self->request_rec->filename = ap_pstrdup(self->request_rec->pool, PyString_AsString(value)); return 0; } else if (strcmp(name, "hstack") == 0) { self->hstack = ap_pstrdup(self->request_rec->pool, PyString_AsString(value)); return 0; } else if (strcmp(name, "_Request") == 0) { /* it's ok to assign None */ if (value == Py_None) { Py_XDECREF(self->Request); self->Request = NULL; return 0; } /* but anything else has to be an instance */ if (! PyInstance_Check(value)) { PyErr_SetString(PyExc_AttributeError, "special attribute _Request must be an instance"); return -1; } Py_INCREF(value); self->Request = value; return 0; } else return PyMember_Set((char *)self->request_rec, request_memberlist, name, value); }
static int DataBuf_setattr(DataBufObj *self, char *name, PyObject *v) { if (v == NULL) { PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute"); return -1; } if (strcmp(name, "name") == 0) { int size; if (!PyString_Check(v)) { PyErr_BadArgument(); return -1; } size = PyString_Size(v); if (size > sizeof(self->fmt.name)) { PyErr_SetString(PyExc_TypeError, "name too long"); return -1; } strncpy(self->fmt.name, PyString_AsString(v), sizeof(self->fmt.name)); self->fmt.namelen = size; return 0; } return PyMember_Set((char *)self, DataBuf_memberlist, name, v); }
static int frame_setattr(PyFrameObject *f, char *name, PyObject *value) { return PyMember_Set((char *)f, frame_memberlist, name, value); }