| 27815 | return ret; |
| 27816 | } |
| 27817 | static int __Pyx_setup_reduce(PyObject* type_obj) { |
| 27818 | int ret = 0; |
| 27819 | PyObject *object_reduce = NULL; |
| 27820 | PyObject *object_getstate = NULL; |
| 27821 | PyObject *object_reduce_ex = NULL; |
| 27822 | PyObject *reduce = NULL; |
| 27823 | PyObject *reduce_ex = NULL; |
| 27824 | PyObject *reduce_cython = NULL; |
| 27825 | PyObject *setstate = NULL; |
| 27826 | PyObject *setstate_cython = NULL; |
| 27827 | PyObject *getstate = NULL; |
| 27828 | #if CYTHON_USE_PYTYPE_LOOKUP |
| 27829 | getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); |
| 27830 | #else |
| 27831 | getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); |
| 27832 | if (!getstate && PyErr_Occurred()) { |
| 27833 | goto __PYX_BAD; |
| 27834 | } |
| 27835 | #endif |
| 27836 | if (getstate) { |
| 27837 | #if CYTHON_USE_PYTYPE_LOOKUP |
| 27838 | object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); |
| 27839 | #else |
| 27840 | object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); |
| 27841 | if (!object_getstate && PyErr_Occurred()) { |
| 27842 | goto __PYX_BAD; |
| 27843 | } |
| 27844 | #endif |
| 27845 | if (object_getstate != getstate) { |
| 27846 | goto __PYX_GOOD; |
| 27847 | } |
| 27848 | } |
| 27849 | #if CYTHON_USE_PYTYPE_LOOKUP |
| 27850 | object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; |
| 27851 | #else |
| 27852 | object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; |
| 27853 | #endif |
| 27854 | reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; |
| 27855 | if (reduce_ex == object_reduce_ex) { |
| 27856 | #if CYTHON_USE_PYTYPE_LOOKUP |
| 27857 | object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; |
| 27858 | #else |
| 27859 | object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; |
| 27860 | #endif |
| 27861 | reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; |
| 27862 | if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { |
| 27863 | reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); |
| 27864 | if (likely(reduce_cython)) { |
| 27865 | ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; |
| 27866 | ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; |
| 27867 | } else if (reduce == object_reduce || PyErr_Occurred()) { |
| 27868 | goto __PYX_BAD; |
| 27869 | } |
| 27870 | setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate); |
| 27871 | if (!setstate) PyErr_Clear(); |
| 27872 | if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { |
| 27873 | setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); |
| 27874 | if (likely(setstate_cython)) { |
no test coverage detected