| 28715 | #endif |
| 28716 | } |
| 28717 | static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { |
| 28718 | #if CYTHON_COMPILING_IN_LIMITED_API |
| 28719 | PyObject *f = ((__pyx_CyFunctionObject*)func)->func; |
| 28720 | PyObject *py_name = NULL; |
| 28721 | PyCFunction meth; |
| 28722 | int flags; |
| 28723 | meth = PyCFunction_GetFunction(f); |
| 28724 | if (unlikely(!meth)) return NULL; |
| 28725 | flags = PyCFunction_GetFlags(f); |
| 28726 | if (unlikely(flags < 0)) return NULL; |
| 28727 | #else |
| 28728 | PyCFunctionObject* f = (PyCFunctionObject*)func; |
| 28729 | PyCFunction meth = f->m_ml->ml_meth; |
| 28730 | int flags = f->m_ml->ml_flags; |
| 28731 | #endif |
| 28732 | Py_ssize_t size; |
| 28733 | switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { |
| 28734 | case METH_VARARGS: |
| 28735 | if (likely(kw == NULL || PyDict_Size(kw) == 0)) |
| 28736 | return (*meth)(self, arg); |
| 28737 | break; |
| 28738 | case METH_VARARGS | METH_KEYWORDS: |
| 28739 | return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); |
| 28740 | case METH_NOARGS: |
| 28741 | if (likely(kw == NULL || PyDict_Size(kw) == 0)) { |
| 28742 | #if CYTHON_ASSUME_SAFE_MACROS |
| 28743 | size = PyTuple_GET_SIZE(arg); |
| 28744 | #else |
| 28745 | size = PyTuple_Size(arg); |
| 28746 | if (unlikely(size < 0)) return NULL; |
| 28747 | #endif |
| 28748 | if (likely(size == 0)) |
| 28749 | return (*meth)(self, NULL); |
| 28750 | #if CYTHON_COMPILING_IN_LIMITED_API |
| 28751 | py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); |
| 28752 | if (!py_name) return NULL; |
| 28753 | PyErr_Format(PyExc_TypeError, |
| 28754 | "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", |
| 28755 | py_name, size); |
| 28756 | Py_DECREF(py_name); |
| 28757 | #else |
| 28758 | PyErr_Format(PyExc_TypeError, |
| 28759 | "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", |
| 28760 | f->m_ml->ml_name, size); |
| 28761 | #endif |
| 28762 | return NULL; |
| 28763 | } |
| 28764 | break; |
| 28765 | case METH_O: |
| 28766 | if (likely(kw == NULL || PyDict_Size(kw) == 0)) { |
| 28767 | #if CYTHON_ASSUME_SAFE_MACROS |
| 28768 | size = PyTuple_GET_SIZE(arg); |
| 28769 | #else |
| 28770 | size = PyTuple_Size(arg); |
| 28771 | if (unlikely(size < 0)) return NULL; |
| 28772 | #endif |
| 28773 | if (likely(size == 1)) { |
| 28774 | PyObject *result, *arg0; |
no test coverage detected