of an `ndarray`. If obj is an `ndarray`, it is assumed to be contiguous. If the specified len==-1, str must be null-terminated. */ static int try_pyarr_from_string(PyObject *obj, const string str, const int len) { #ifdef DEBUGCFUNCS fprintf(stderr, "try_pyarr_from_string(str='%s', len=%d, obj=%p)\n", (char*)str,len, obj); #endif if (PyArray_Check(obj)) { PyArrayObject *arr = (PyArrayObject *)obj; assert(ISCONTIGUOUS(arr)); string buf = PyArray_DATA(arr); npy_intp n = len; if (n == -1) { /* Assuming null-terminated str. */ n = strlen(str); } if (n > PyArray_NBYTES(arr)) { n = PyArray_NBYTES(arr); } STRINGCOPYN(buf, str, n); return 1; } capi_fail: PRINTPYOBJERR(obj); PyErr_SetString(#modulename#_error, "try_pyarr_from_string failed"); return 0; } )