static PyObject *sps_putdata(PyObject *self, PyObject *args) { char *spec_version, *array_name; int ptype, stype; PyObject *in_src; PyArrayObject *src; int no_items; if (!PyArg_ParseTuple(args, "ssO", &spec_version, &array_name, &in_src)) { return NULL; } if (!(src = (PyArrayObject*) PyArray_ContiguousFromObject(in_src, NPY_NOTYPE, 2, 2))) { struct module_state *st = GETSTATE(self); PyErr_SetString(st->SPSError, "Input Array is not a 2 dim array"); return NULL; } ptype = PyArray_DESCR(src)->type_num; stype = sps_py2type(ptype); if (ptype != sps_type2py(stype)) { struct module_state *st = GETSTATE(self); PyErr_SetString(st->SPSError, "Type of data in shared memory not supported"); Py_DECREF(src); return NULL; } no_items = (int) (PyArray_DIMS(src)[0] * PyArray_DIMS(src)[1]); if (SPS_CopyToShared(spec_version, array_name, PyArray_DATA(src), stype, no_items) == -1) { struct module_state *st = GETSTATE(self); PyErr_SetString(st->SPSError, "Error copying data to shared memory"); Py_DECREF(src); return NULL; }else Py_DECREF(src); Py_INCREF(Py_None); return Py_None; }
static PyObject *sps_putdata(PyObject *self, PyObject *args) { char *spec_version, *array_name; int ptype, stype; PyObject *in_src; PyArrayObject *src; int no_items; if (!PyArg_ParseTuple(args, "ssO", &spec_version, &array_name, &in_src)) { return NULL; } if (!(src = (PyArrayObject*) PyArray_ContiguousFromObject(in_src, PyArray_NOTYPE, 2, 2))) { PyErr_SetString(SPSError, "Input Array is not a 2 dim array"); return NULL; } ptype = src->descr->type_num; stype = sps_py2type(ptype); if (ptype != sps_type2py(stype)) { PyErr_SetString(SPSError, "Type of data in shared memory not supported"); Py_DECREF(src); return NULL; } no_items = src->dimensions[0] * src->dimensions[1]; if (SPS_CopyToShared(spec_version, array_name, src->data, stype, no_items) == -1) { PyErr_SetString(SPSError, "Error copying data to shared memory"); Py_DECREF(src); return NULL; }else Py_DECREF(src); Py_INCREF(Py_None); return Py_None; }