git: 11380e4b7a08 - main - finance/py-ta-lib: update 0.4.32 → 0.7.1
Yuri Victorovich <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.ports |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=11380e4b7a0822cf8ab69d6f9d3a490ffb0fc22c commit 11380e4b7a0822cf8ab69d6f9d3a490ffb0fc22c Author: Yuri Victorovich <[email protected]> AuthorDate: 2026-08-07 20:19:56 +0000 Commit: Yuri Victorovich <[email protected]> CommitDate: 2026-08-07 20:20:22 +0000 finance/py-ta-lib: update 0.4.32 → 0.7.1 --- finance/py-ta-lib/Makefile | 19 +- finance/py-ta-lib/distinfo | 6 +- finance/py-ta-lib/files/patch-pyproject.toml | 31 ++ finance/py-ta-lib/files/patch-talib___ta__lib.c | 608 ++++++++++++++++++++++++ 4 files changed, 650 insertions(+), 14 deletions(-) diff --git a/finance/py-ta-lib/Makefile b/finance/py-ta-lib/Makefile index 8a42e5ad98b6..6ac3e7a2abb0 100644 --- a/finance/py-ta-lib/Makefile +++ b/finance/py-ta-lib/Makefile @@ -1,38 +1,35 @@ PORTNAME= ta-lib # provides Python namespace 'talib' -DISTVERSIONPREFIX= TA_Lib- -DISTVERSION= 0.4.32 -PORTREVISION= 2 +DISTVERSIONPREFIX= v +DISTVERSION= 0.7.1 CATEGORIES= finance python #MASTER_SITES= PYPI # tests fail whe PYPI is used, see https://github.com/TA-Lib/ta-lib-python/issues/663 PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} -DISTNAME= TA-Lib-${PORTVERSION} MAINTAINER= [email protected] COMMENT= Python wrapper for TA-Lib (Technical Analysis Library) WWW= https://ta-lib.github.io/ta-lib-python/ -BROKEN= fails to build with NumPy 2.x - LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} -LIB_DEPENDS= libta_lib.so:devel/ta-lib +BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} +LIB_DEPENDS= libta-lib.so:devel/ta-lib RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}polars>0:misc/py-polars@${PY_FLAVOR} USES= python USE_PYTHON= distutils cython autoplist pytest - + USE_GITHUB= yes GH_ACCOUNT= TA-Lib GH_PROJECT= ta-lib-python -xWRKSRC= ${WRKDIR}/ta_lib-${DISTVERSION} - TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} TEST_WRKSRC= ${WRKSRC}/tests +# tests as of 0.7.1: 46 passed in 0.60s + post-install: @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/talib/_ta_lib${PYTHON_TAG}.so diff --git a/finance/py-ta-lib/distinfo b/finance/py-ta-lib/distinfo index 92bf337315a2..2c75a40fbaaf 100644 --- a/finance/py-ta-lib/distinfo +++ b/finance/py-ta-lib/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1720830530 -SHA256 (TA-Lib-ta-lib-python-TA_Lib-0.4.32_GH0.tar.gz) = 34b03fa32465632b5eabdd2ea0278abf8270b0b07512d02e1e35443a09689abe -SIZE (TA-Lib-ta-lib-python-TA_Lib-0.4.32_GH0.tar.gz) = 416946 +TIMESTAMP = 1784748642 +SHA256 (TA-Lib-ta-lib-python-v0.7.1_GH0.tar.gz) = 732decec9f46f666f36ac55a9d46099bf8ac367dd6ae21cc376d7f4dcea156ed +SIZE (TA-Lib-ta-lib-python-v0.7.1_GH0.tar.gz) = 456397 diff --git a/finance/py-ta-lib/files/patch-pyproject.toml b/finance/py-ta-lib/files/patch-pyproject.toml new file mode 100644 index 000000000000..ef07fde950d3 --- /dev/null +++ b/finance/py-ta-lib/files/patch-pyproject.toml @@ -0,0 +1,31 @@ +-- Fix build with the setuptools version in the ports tree and match the +-- wheel name to PORTNAME. Drop PEP 639 license-files which the current +-- setuptools does not recognise and remove the spurious runtime dependency +-- on the 'build' package. Keep Cython in the build-system requires so local +-- builds regenerate _ta_lib.c against the installed NumPy headers; the +-- bundled copy references NumPy 2.x internal C-API macros that are not +-- declared in the ports tree NumPy package, so it is replaced with a +-- regenerated copy via files/patch-talib___ta__lib.c. +--- pyproject.toml.orig 2026-07-16 18:33:25 UTC ++++ pyproject.toml +@@ -3,11 +3,10 @@ build-backend = "setuptools.build_meta" + build-backend = "setuptools.build_meta" + + [project] +-name = "TA-Lib" ++name = "ta-lib" + version = "0.7.1" + description = "Python wrapper for TA-Lib" + readme = "README.md" +-license-files = ["LICENSE"] + authors = [ + {name = "John Benediktsson", email = "[email protected]"} + ] +@@ -34,7 +33,6 @@ dependencies = [ + "Intended Audience :: Financial and Insurance Industry", + ] + dependencies = [ +- "build", + "numpy", + ] + requires-python = '>=3.9' diff --git a/finance/py-ta-lib/files/patch-talib___ta__lib.c b/finance/py-ta-lib/files/patch-talib___ta__lib.c new file mode 100644 index 000000000000..e0ac80e82527 --- /dev/null +++ b/finance/py-ta-lib/files/patch-talib___ta__lib.c @@ -0,0 +1,608 @@ +-- Regenerate talib/_ta_lib.c with the Cython version in the ports tree +-- (3.2.8) against the installed NumPy headers. The bundled copy references +-- NumPy 2.x internal C-API macros (PyDataType_*, _PyUFuncObject_*, +-- _PyDatetimeScalarObject_*) that are not declared in the ports tree NumPy +-- package, causing build failures in Poudriere. +--- talib/_ta_lib.c.orig 2026-07-22 20:08:45 UTC ++++ talib/_ta_lib.c +@@ -4,15 +4,15 @@ + { + "distutils": { + "depends": [ +- "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayobject.h", +- "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayscalars.h", +- "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarrayobject.h", +- "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarraytypes.h", +- "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/ufuncobject.h", +- "/opt/homebrew/include/ta-lib/ta_abstract.h", +- "/opt/homebrew/include/ta-lib/ta_common.h", +- "/opt/homebrew/include/ta-lib/ta_defs.h", +- "/opt/homebrew/include/ta-lib/ta_func.h" ++ "/usr/local/include/ta-lib/ta_abstract.h", ++ "/usr/local/include/ta-lib/ta_common.h", ++ "/usr/local/include/ta-lib/ta_defs.h", ++ "/usr/local/include/ta-lib/ta_func.h", ++ "/usr/local/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayobject.h", ++ "/usr/local/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayscalars.h", ++ "/usr/local/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarrayobject.h", ++ "/usr/local/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarraytypes.h", ++ "/usr/local/lib/python3.12/site-packages/numpy/_core/include/numpy/ufuncobject.h" + ], + "include_dirs": [ + "/usr/include", +@@ -21,7 +21,7 @@ + "/opt/local/include", + "/opt/homebrew/include", + "/opt/homebrew/opt/ta-lib/include", +- "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include" ++ "/usr/local/lib/python3.12/site-packages/numpy/_core/include" + ], + "libraries": [ + "ta-lib" +@@ -1427,7 +1427,7 @@ static const char* const __pyx_f[] = { + "talib/_ta_lib.pyx", + "talib/_common.pxi", + "talib/_abstract.pxi", +- "../../.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd", ++ "../../../../../local/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd", + "talib/_func.pxi", + "talib/_stream.pxi", + "cpython/type.pxd", +@@ -2914,11 +2914,6 @@ static int __Pyx_State_RemoveModule(void*); + #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI + #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." + +-static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj_typeobj(PyArray_Descr *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind_kind(PyArray_Descr *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type_type(PyArray_Descr *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder_byteorder(PyArray_Descr *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num_type_num(PyArray_Descr *__pyx_v_self); /* proto*/ + static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self); /* proto*/ + static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self); /* proto*/ + static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self); /* proto*/ +@@ -2938,17 +2933,6 @@ static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4da + static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self); /* proto*/ + static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self); /* proto*/ + static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin_nin(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout_nout(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs_nargs(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions_functions(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data_data(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes_ntypes(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name_name(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc_doc(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr_ptr(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj_obj(PyUFuncObject *__pyx_v_self); /* proto*/ +-static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops_userloops(PyUFuncObject *__pyx_v_self); /* proto*/ + + /* Module declarations from "libc.string" */ + +@@ -4722,71 +4706,6 @@ return 0; + /* #### Code section: module_code ### */ + + +-static CYTHON_INLINE PyTypeObject *__pyx_f_5numpy_5dtype_7typeobj_typeobj(PyArray_Descr *__pyx_v_self) { +- PyTypeObject *__pyx_r; +- +- __pyx_r = PyDataType_TYPEOBJ(__pyx_v_self); +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4kind_kind(PyArray_Descr *__pyx_v_self) { +- char __pyx_r; +- +- __pyx_r = PyDataType_KIND(__pyx_v_self); +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE char __pyx_f_5numpy_5dtype_4type_type(PyArray_Descr *__pyx_v_self) { +- char __pyx_r; +- +- __pyx_r = PyDataType_TYPE(__pyx_v_self); +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE char __pyx_f_5numpy_5dtype_9byteorder_byteorder(PyArray_Descr *__pyx_v_self) { +- char __pyx_r; +- +- __pyx_r = PyDataType_BYTEORDER(__pyx_v_self); +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE int __pyx_f_5numpy_5dtype_8type_num_type_num(PyArray_Descr *__pyx_v_self) { +- int __pyx_r; +- +- __pyx_r = PyDataType_TYPENUM(__pyx_v_self); +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- + static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) { + npy_intp __pyx_r; + +@@ -5068,7 +4987,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_ + __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); + + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 795, __pyx_L1_error) ++ __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -5097,7 +5016,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_ + __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); + + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 798, __pyx_L1_error) ++ __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -5126,7 +5045,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_ + __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); + + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 801, __pyx_L1_error) ++ __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -5155,7 +5074,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_ + __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); + + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 804, __pyx_L1_error) ++ __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -5184,7 +5103,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_ + __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); + + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 807, __pyx_L1_error) ++ __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; +@@ -5237,149 +5156,6 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataTy + } + + +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_3nin_nin(PyUFuncObject *__pyx_v_self) { +- int __pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nin; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_4nout_nout(PyUFuncObject *__pyx_v_self) { +- int __pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nout; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_5nargs_nargs(PyUFuncObject *__pyx_v_self) { +- int __pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->nargs; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE PyUFuncGenericFunction *__pyx_f_5numpy_5ufunc_9functions_functions(PyUFuncObject *__pyx_v_self) { +- PyUFuncGenericFunction *__pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->functions; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE void **__pyx_f_5numpy_5ufunc_4data_data(PyUFuncObject *__pyx_v_self) { +- void **__pyx_r; +- +- __pyx_r = ((void **)_PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->data); +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE int __pyx_f_5numpy_5ufunc_6ntypes_ntypes(PyUFuncObject *__pyx_v_self) { +- int __pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ntypes; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_4name_name(PyUFuncObject *__pyx_v_self) { +- char const *__pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->name; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE char const *__pyx_f_5numpy_5ufunc_3doc_doc(PyUFuncObject *__pyx_v_self) { +- char const *__pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->doc; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE void *__pyx_f_5numpy_5ufunc_3ptr_ptr(PyUFuncObject *__pyx_v_self) { +- void *__pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->ptr; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_3obj_obj(PyUFuncObject *__pyx_v_self) { +- PyObject *__pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->obj; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- +-static CYTHON_INLINE PyObject *__pyx_f_5numpy_5ufunc_9userloops_userloops(PyUFuncObject *__pyx_v_self) { +- PyObject *__pyx_r; +- +- __pyx_r = _PyUFuncObject_GET_ITEM_DATA(__pyx_v_self)->userloops; +- goto __pyx_L0; +- +- +- /* function exit code */ +- __pyx_L0:; +- return __pyx_r; +-} +- +- + static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { + int __pyx_t_1; + int __pyx_lineno = 0; +@@ -5388,7 +5164,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_bas + + Py_INCREF(__pyx_v_base); + +- __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(3, 1067, __pyx_L1_error) ++ __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(3, 997, __pyx_L1_error) + + + /* function exit code */ +@@ -5458,7 +5234,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(v + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + +- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1079, __pyx_L3_error) ++ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1009, __pyx_L3_error) + + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -5470,7 +5246,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(v + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1080, __pyx_L5_except_error) ++ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1010, __pyx_L5_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); +@@ -5481,12 +5257,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(v + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1081, __pyx_L5_except_error) ++ if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1011, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __PYX_ERR(3, 1081, __pyx_L5_except_error) ++ __PYX_ERR(3, 1011, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + +@@ -5544,7 +5320,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(v + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + +- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1085, __pyx_L3_error) ++ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1015, __pyx_L3_error) + + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -5556,7 +5332,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(v + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1086, __pyx_L5_except_error) ++ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1016, __pyx_L5_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); +@@ -5567,12 +5343,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(v + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1087, __pyx_L5_except_error) ++ if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1017, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __PYX_ERR(3, 1087, __pyx_L5_except_error) ++ __PYX_ERR(3, 1017, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + +@@ -5630,7 +5406,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(v + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + +- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1091, __pyx_L3_error) ++ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1021, __pyx_L3_error) + + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; +@@ -5642,7 +5418,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(v + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); +- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1092, __pyx_L5_except_error) ++ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1022, __pyx_L5_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); +@@ -5653,12 +5429,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(v + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; +- if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1093, __pyx_L5_except_error) ++ if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1023, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +- __PYX_ERR(3, 1093, __pyx_L5_except_error) ++ __PYX_ERR(3, 1023, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + +@@ -5718,7 +5494,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_d + static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { + npy_datetime __pyx_r; + +- __pyx_r = _PyDatetimeScalarObject_GetValue(__pyx_v_obj); ++ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; + goto __pyx_L0; + + +@@ -5731,7 +5507,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_ + static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { + npy_timedelta __pyx_r; + +- __pyx_r = _PyTimedeltaScalarObject_GetValue(__pyx_v_obj); ++ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; + goto __pyx_L0; + + +@@ -5744,7 +5520,7 @@ static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_g + static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { + NPY_DATETIMEUNIT __pyx_r; + +- __pyx_r = _PyDatetimeScalarObject_GetMetadata(__pyx_v_obj).base; ++ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); + goto __pyx_L0; + + +@@ -80869,7 +80645,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), + #endif +- __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 286, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 274, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "broadcast", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), +@@ -80878,7 +80654,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), + #endif +- __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 290, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 278, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "ndarray", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), +@@ -80887,7 +80663,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), + #endif +- __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 329, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 317, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "generic", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80896,7 +80672,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(3, 847, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(3, 826, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "number", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80905,7 +80681,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(3, 849, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(3, 828, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "integer", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80914,7 +80690,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(3, 851, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(3, 830, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "signedinteger", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80923,7 +80699,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 853, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 832, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "unsignedinteger", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80932,7 +80708,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 855, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 834, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "inexact", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80941,7 +80717,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 857, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 836, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "floating", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80950,7 +80726,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(3, 859, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(3, 838, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "complexfloating", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80959,7 +80735,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 861, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 840, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "flexible", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80968,7 +80744,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 863, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 842, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "character", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), +@@ -80977,7 +80753,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif +- __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(3, 865, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(3, 844, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "ufunc", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), +@@ -80986,7 +80762,7 @@ static int __Pyx_modinit_type_import_code(__pyx_mstate + #else + sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), + #endif +- __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 946, __pyx_L1_error) ++ __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return 0;