<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/2424cb3a2431453ed68634a708a90941904c93b6">https://github.com/macports/macports-ports/commit/2424cb3a2431453ed68634a708a90941904c93b6</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 2424cb3a2431453ed68634a708a90941904c93b6
</span>Author: Renee Otten <reneeotten@macports.org>
AuthorDate: Mon Nov 4 12:48:39 2024 -0500
<span style='display:block; white-space:pre;color:#404040;'> py-scipy: update to 1.14.1
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> - drop py38, add py313 subport
</span><span style='display:block; white-space:pre;color:#404040;'> - pin to 1.13.1 for py39 subport
</span><span style='display:block; white-space:pre;color:#404040;'> - switch to PyPI
</span><span style='display:block; white-space:pre;color:#404040;'> - add BLAS/LAPACK variants
</span><span style='display:block; white-space:pre;color:#404040;'> - only add 'accelerate' variant on systems where upstream supports it
</span><span style='display:block; white-space:pre;color:#404040;'> - add myself as co-maintainer
</span><span style='display:block; white-space:pre;color:#404040;'> - completely switch to 'meson' as build backend
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/70931
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/69538
</span>---
python/py-scipy/Portfile | 288 +++++----------------
.../py-scipy/files/patch-allow-MP-boost-1.10.diff | 15 --
python/py-scipy/files/patch-allow-MP-boost.diff | 15 --
.../files/patch-ckdtree-fix-isinf-1.10.diff | 252 ------------------
.../py-scipy/files/patch-macosx-version-min.diff | 20 --
python/py-scipy/files/patch-pyproject.toml.diff | 50 ----
.../files/patch-use__STDC_NO_THREADS__.diff | 66 -----
.../patch-v1.13.1-version-caps-pyproject.toml.diff | 28 ++
.../files/patch-version-caps-pyproject.toml.diff | 25 ++
9 files changed, 120 insertions(+), 639 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/Portfile b/python/py-scipy/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e25b65adde6..6e8552a47e4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-scipy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,271 +5,117 @@ PortGroup active_variants 1.1
</span> PortGroup boost 1.0
PortGroup compilers 1.0
PortGroup compiler_blacklist_versions 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup github 1.0
</span> PortGroup legacysupport 1.1
PortGroup python 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# __sincos https://trac.macports.org/ticket/63233
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# __sincos ; https://trac.macports.org/ticket/63233
</span> legacysupport.newest_darwin_requires_legacy 12
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup scipy scipy 1.11.4 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name py-scipy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 1.14.1
</span> revision 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 8120272e76e1065f8f6b5aaf3fa7fd450d56e4c3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 56336202
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-github.tarball_from releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 a47254b77f71db2dc36dcf4ad98eb668cc75667e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 58620554
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-name py-scipy
</span> license BSD
<span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers {michaelld @michaelld} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {michaelld @michaelld} {reneeotten @reneeotten} openmaintainer
</span> description An opensource library of scientific tools for Python
long_description {*}${description}
homepage https://www.scipy.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-python.versions 38 39 310 311 312
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# When updating to meson.build later, please do it conditionally,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# unless build is confirmed on older systems as well.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-python.pep517 no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-python.add_archflags no
</span> universal_variant no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compilers.setup require_fortran -clang -gcc44 -gcc45 -gcc46 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -gcc47 -gcc48 -g95
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-github.livecheck.regex {([0-9.-]+)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 39 310 311 312 313
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.pep517_backend meson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.add_archflags no
</span>
if {${name} ne ${subport}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${python.version} == 38} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Support for Python 3.8 dropped in 1.11.x:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://github.com/scipy/scipy/commit/890ffe9febc7b199e84ca9444ceb7b2f9c0a33aa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- github.setup scipy scipy 1.10.1 v
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- revision 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 a97f16d6acefbc7e52b81499d250226e0cce114d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 42407997
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- boost.version 1.76
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-allow-MP-boost-1.10.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:py${python.version}-cython-compat
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set compat_path [string replace ${python.pkgd} 0 [string length ${python.prefix}]-1 ${prefix}/lib/py${python.version}-cython-compat]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append PYTHONPATH=${compat_path}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- boost.version 1.81
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.c_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.cxx_standard 2017
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- move ${worksrcpath}/_setup.py ${worksrcpath}/setup.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-allow-MP-boost.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:py${python.version}-cython
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-pythran \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:swig-python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SciPy requires GCC >= 9.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compilers.setup require_fortran -clang -gcc44 -gcc45 -gcc46 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -gcc47 -gcc48 -gcc5 -gcc6 -gcc7 -gcc8 -g95
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-numpy \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-pybind11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-mypy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # and Clang >= 12.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.blacklist-append {clang < 1200}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.c_standard 2011
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.cxx_standard 2014
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.thread_local_storage yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Requires threads.h, missing in Xcode clang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://build.macports.org/builders/ports-10.11_x86_64-builder/builds/136856/steps/install-port/logs/stdio
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler.blacklist-append {clang < 900}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-version-caps-pyproject.toml.diff
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # force disable STDC THREADS from <threads.h> and instead just use __thread
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/62488
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-use__STDC_NO_THREADS__.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://github.com/scipy/scipy/issues/19718
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-macosx-version-min.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ boost.version 1.81
</span>
# There is some conflict between legacysupport cmath and gcc on old systems, which makes isnan/isinf undefined.
if {${os.platform} eq "darwin" && ${os.major} < 13 && [string match *gcc* ${configure.compiler}]} {
patchfiles-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-special-fix-isnan-isinf.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${python.version} == 38} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-ckdtree-fix-isinf-1.10.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-special-fix-isnan-isinf.diff \
</span> patch-ckdtree-fix-isinf.diff
<span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace "s|@MACOS_V@|${macosx_deployment_target}|g" ${worksrcpath}/scipy/_build_utils/compiler_helper.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${python.version} == 39} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version 1.13.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums rmd160 ab376ae8d339135b8edb8220d28c26fb495a0609 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 57210720
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-version-caps-pyproject.toml.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-v1.13.1-version-caps-pyproject.toml.diff
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${python.version} == 312} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- python.pep517 yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- python.pep517_backend meson
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:pkgconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # TODO: implement variants with different BLAS/LAPACK implementations; these need to be fixed in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # py-numpy port as well after the switch to meson
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-pyproject.toml.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.fflags-append -fno-second-underscore
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append PATH=${python.prefix}/bin:$env(PATH)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- worksrcdir ${distname}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append "CCFLAGS=-I${prefix}/include -L${prefix}/lib"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append "CCFLAGS=-I${prefix}/include -L${prefix}/lib"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.fflags-append -fno-second-underscore
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append SETUPTOOLS_USE_DISTUTILS=stdlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append SETUPTOOLS_USE_DISTUTILS=stdlib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pre-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set fc_options "config_fc --fcompiler gnu95 --f77exec ${configure.f77} --f77flags='${configure.f77_archflags} ${configure.fflags}' --f90exec ${configure.f90} --f90flags='${configure.f90_archflags} ${configure.fflags}'"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set config_options "config --cc ${configure.cc} --include-dirs ${prefix}/include --library-dirs ${prefix}/lib"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.cmd-append ${fc_options} ${config_options}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.cmd-append ${fc_options} ${config_options}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.fflags-append -fno-second-underscore
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXX=${configure.cxx} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CFLAGS=${configure.cc_archflags} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXXFLAGS=${configure.cxx_archflags} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CPPFLAGS=${configure.cppflags}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXX=${configure.cxx} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CFLAGS=${configure.cc_archflags} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXXFLAGS=${configure.cxx_archflags} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CPPFLAGS=${configure.cppflags}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # for some reason read-world is not set
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "chmod -R a+r ${destroot}${prefix}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant atlas conflicts openblas mkl description "Use MacPorts ATLAS libraries" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:atlas
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-cython \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:bin/pkg-config:pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-pythran
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant openblas conflicts atlas mkl description "Use MacPorts OpenBLAS Libraries" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.env-append PATH=${python.prefix}/bin:$env(PATH)
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mkl conflicts atlas openblas description "Use MacPorts MKL Libraries" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:py${python.version}-mkl \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python.version}-mkl-include
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-numpy \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-pybind11 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-mypy
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Make +openblas a default variant, at least temporarily, to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # overcome issues with Apple's /usr/lib/libblas.* and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # /usr/lib/liblapack.* missing a symbol. see also:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://trac.macports.org/ticket/57829
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![variant_isset atlas] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ![variant_isset openblas] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ![variant_isset mkl]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants +openblas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SciPy (and NumPy) only support the Accelerate framework for macOS 13.3+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see: https://scipy.github.io/devdocs/building/blas_lapack.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && (${os.major} > 22 || ${os.major} == 22 && ${os.minor} >= 4)} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant accelerate conflicts openblas flexiblas blis description "Use Apples Accelerate Framework" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.args-append -Csetup-args=-Dblas=accelerate -Csetup-args=-Dlapack=accelerate
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[variant_isset atlas]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # use MacPorts atlas
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append OPENBLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MKLROOT=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LAPACK=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BLAS=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append OPENBLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MKLROOT=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LAPACK=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BLAS=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # scipy needs fortran; so we only need to check if atlas is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # compiled with +nofortran
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![catch {set result [active_variants atlas "" nofortran]}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {!$result} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return -code error \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "You have selected the +atlas variant but atlas was built with +nofortran.\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy needs a fortran enabled atlas. Please rebuild atlas without the +nofortran\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # also check that numpy has the atlas variant active
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![catch {set result [active_variants py${python.version}-numpy atlas ""]}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {!$result} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return -code error \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "You have selected the +atlas variant but py${python.version}-numpy does not\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- have the +atlas variant active. Please ensure that numpy is activated with the\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- +atlas variant."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant openblas conflicts accelerate flexiblas blis description "Use MacPorts OpenBLAS Libraries" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {[variant_isset openblas]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # use MacPorts OpenBLAS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append OPENBLAS=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MKLROOT=None
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append OPENBLAS=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MKLROOT=None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.args-append -Csetup-args=-Dblas=openblas -Csetup-args=-Dlapack=openblas \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Csetup-args=-Dpkg_config_path=${prefix}/lib/pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {[variant_isset mkl]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # use MacPorts MKL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append OPENBLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MKLROOT=${python.prefix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append OPENBLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MKLROOT=${python.prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant flexiblas conflicts accelerate openblas blis description "Use MacPorts FlexiBLAS libraries" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:flexiblas
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # check that numpy has the mkl variant active
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![catch {set result [active_variants py${python.version}-numpy mkl ""]}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {!$result} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.args-append -Csetup-args=-Dblas=flexiblas -Csetup-args=-Dlapack=flexiblas \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Csetup-args=-Dpkg_config_path=${prefix}/lib/pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- return -code error \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "You have selected the +mkl variant but py${python.version}-numpy does not\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- have the +mkl variant active. Please ensure that numpy is activated with the\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- +mkl variant."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant blis conflicts accelerate openblas flexiblas description "Use MacPorts BLIS/lapack libraries" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: eventually this could/should use libFLAME, but currently SciPy cannot be convinced to use it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:blis \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:lapack
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # set absolute path to remove references to @rpath/libmkl_rt.2.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach soname [exec find ${destroot}${python.pkgd}/scipy -name "*.so"] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "install_name_tool -change @rpath/libmkl_rt.2.dylib ${python.prefix}/lib/libmkl_rt.2.dylib ${soname}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.args-append -Csetup-args=-Dblas=blis -Csetup-args=-Dlapack=lapack \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Csetup-args=-Dpkg_config_path=${prefix}/share/pkgconfig:${prefix}/lib/lapack/pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # set default BLAS/LAPACK variant if none is explicitly selected by the user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset flexiblas] && ![variant_isset blis]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # default to macOS Accelerate framework if macOS 13.3 or higher, otherwise OpenBLAS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && (${os.major} > 22 || ${os.major} == 22 && ${os.minor} >= 4)} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +accelerate
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # use Accelerate BLAS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.env-append OPENBLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LAPACK=/usr/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BLAS=/usr/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot.env-append OPENBLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ATLAS=None \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LAPACK=/usr/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BLAS=/usr/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +openblas
</span> }
}
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-allow-MP-boost-1.10.diff b/python/py-scipy/files/patch-allow-MP-boost-1.10.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 193953bec9c..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/files/patch-allow-MP-boost-1.10.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,15 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/_lib/setup.py.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/_lib/setup.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4,9 +4,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def check_boost_submodule():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from scipy._lib._boost_utils import _boost_dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if not os.path.exists(_boost_dir(ret_path=True) / 'README.rst'):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- raise RuntimeError("Missing the `boost` submodule! Run `git submodule "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "update --init` to fix this.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #if not os.path.exists(_boost_dir(ret_path=True) / 'README.rst'):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # raise RuntimeError("Missing the `boost` submodule! Run `git submodule "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ # "update --init` to fix this.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def check_highs_submodule():
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-allow-MP-boost.diff b/python/py-scipy/files/patch-allow-MP-boost.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1647219e12b..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/files/patch-allow-MP-boost.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,15 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/_lib/setup.py.orig 2023-11-19 02:28:52.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/_lib/setup.py 2023-12-20 15:52:08.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4,9 +4,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def check_boost_submodule():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from scipy._lib._boost_utils import _boost_dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if not os.path.exists(_boost_dir(ret_path=True).parent / 'README.md'):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- raise RuntimeError("Missing the `boost` submodule! Run `git submodule "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "update --init` to fix this.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# if not os.path.exists(_boost_dir(ret_path=True).parent / 'README.md'):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# raise RuntimeError("Missing the `boost` submodule! Run `git submodule "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# "update --init` to fix this.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- def check_highs_submodule():
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-ckdtree-fix-isinf-1.10.diff b/python/py-scipy/files/patch-ckdtree-fix-isinf-1.10.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 9e23501a1e9..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/files/patch-ckdtree-fix-isinf-1.10.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,252 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From f2b7fee97d665364e0c2502d44874155d93bd6b8 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Wed, 20 Dec 2023 21:44:14 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 1/2] ckdtree: fix isinf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Partly revert a breaking commit: https://github.com/scipy/scipy/commit/a77855a8a00137e06fee5f011be4b0526a20fb14
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-That does not work because _ckdtree.cxx is generated with isinf and not std::isinf. Earlier version is broken either, since it does not define isinf to std::isinf at all.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/_ckdtree.pyx | 4 +++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/ckdtree_decl.h | 1 +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/count_neighbors.cxx | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/query.cxx | 12 ++++++------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/query_ball_point.cxx | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/query_ball_tree.cxx | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/query_pairs.cxx | 4 ++--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/rectangle.h | 6 +++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- scipy/spatial/ckdtree/src/sparse_distances.cxx | 6 +++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9 files changed, 24 insertions(+), 21 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/_ckdtree.pyx scipy/spatial/_ckdtree.pyx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index bbc996574..e66c90bae 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/_ckdtree.pyx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/_ckdtree.pyx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15,7 +15,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from cpython.mem cimport PyMem_Malloc, PyMem_Free
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from libcpp.vector cimport vector
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- from libcpp cimport bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--from libc.math cimport isinf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cimport cython
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -39,6 +38,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # ===================
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cdef extern from "ckdtree_decl.h":
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int isinf(np.float64_t x) nogil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct ckdtreenode:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- np.intp_t split_dim
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- np.intp_t children
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/ckdtree_decl.h scipy/spatial/ckdtree/src/ckdtree_decl.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3c28a49cb..b31e60b6d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/ckdtree_decl.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/ckdtree_decl.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12,6 +12,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define CKDTREE_PREFETCH(x, rw, loc) NPY_PREFETCH(x, rw, loc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define ckdtree_intp_t npy_intp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define isinf(x) std::isinf(x)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define ckdtree_fmin(x, y) fmin(x, y)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define ckdtree_fmax(x, y) fmax(x, y)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define ckdtree_fabs(x) fabs(x)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/count_neighbors.cxx scipy/spatial/ckdtree/src/count_neighbors.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index fd0ff5e26..598a922b9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/count_neighbors.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/count_neighbors.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -213,13 +213,13 @@ count_neighbors(struct CNBParams *params,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (CKDTREE_LIKELY(self->raw_boxsize_data == NULL)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), MinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, MinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, MinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), BoxMinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, BoxMinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, BoxMinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/query.cxx scipy/spatial/ckdtree/src/query.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a8aeba469..c24037f38 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/query.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/query.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -133,7 +133,7 @@ struct nodeinfo {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- inline void update_side_distance(const int d, const double new_side_distance, const double p) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (CKDTREE_UNLIKELY(std::isinf(p))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (CKDTREE_UNLIKELY(isinf(p))) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- min_distance = ckdtree_fmax(min_distance, new_side_distance);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- min_distance += new_side_distance - side_distances()[d];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -267,7 +267,7 @@ query_single_point(const ckdtree *self,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (eps == 0.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- epsfac = 1.;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else if (std::isinf(p))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (isinf(p))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- epsfac = 1. / (1. + eps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- epsfac = 1. / std::pow((1. + eps), p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -277,7 +277,7 @@ query_single_point(const ckdtree *self,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- double tmp = distance_upper_bound;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distance_upper_bound = tmp*tmp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else if ((!std::isinf(p)) && (!std::isinf(distance_upper_bound)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if ((!isinf(p)) && (!isinf(distance_upper_bound)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distance_upper_bound = std::pow(distance_upper_bound,p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for(;;) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -457,7 +457,7 @@ query_single_point(const ckdtree *self,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- result_indices[i] = neighbor.contents.intdata;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (CKDTREE_LIKELY(p == 2.0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- result_distances[i] = std::sqrt(-neighbor.priority);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else if ((p == 1.) || (std::isinf(p)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if ((p == 1.) || (isinf(p)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- result_distances[i] = -neighbor.priority;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- result_distances[i] = std::pow((-neighbor.priority),(1./p));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -495,7 +495,7 @@ query_knn(const ckdtree *self,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const double *xx_row = xx + (i*m);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), MinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, MinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, MinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -512,7 +512,7 @@ query_knn(const ckdtree *self,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), BoxMinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, BoxMinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, BoxMinkowskiDistPp) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/query_ball_point.cxx scipy/spatial/ckdtree/src/query_ball_point.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 77ed1beee..4d5dc938b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/query_ball_point.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/query_ball_point.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -128,7 +128,7 @@ query_ball_point(const ckdtree *self, const double *x,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Rectangle point(m, x + i * m, x + i * m);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), MinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, MinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, MinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -139,7 +139,7 @@ query_ball_point(const ckdtree *self, const double *x,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), BoxMinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, BoxMinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, BoxMinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/query_ball_tree.cxx scipy/spatial/ckdtree/src/query_ball_tree.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index bea17eb7e..9338618aa 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/query_ball_tree.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/query_ball_tree.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -198,13 +198,13 @@ query_ball_tree(const ckdtree *self, const ckdtree *other,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(CKDTREE_LIKELY(self->raw_boxsize_data == NULL)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), MinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, MinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, MinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), BoxMinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, BoxMinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, BoxMinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/query_pairs.cxx scipy/spatial/ckdtree/src/query_pairs.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5cc81594f..c4af434b6 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/query_pairs.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/query_pairs.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -218,13 +218,13 @@ query_pairs(const ckdtree *self,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(CKDTREE_LIKELY(self->raw_boxsize_data == NULL)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), MinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, MinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, MinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), BoxMinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, BoxMinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, BoxMinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/rectangle.h scipy/spatial/ckdtree/src/rectangle.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 39e9e0591..a349f50d1 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/rectangle.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/rectangle.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -130,7 +130,7 @@ template<typename MinMaxDist>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* internally we represent all distances as distance ** p */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (CKDTREE_LIKELY(p == 2.0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- upper_bound = _upper_bound * _upper_bound;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else if ((!std::isinf(p)) && (!std::isinf(_upper_bound)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if ((!isinf(p)) && (!isinf(_upper_bound)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- upper_bound = std::pow(_upper_bound,p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- upper_bound = _upper_bound;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -142,7 +142,7 @@ template<typename MinMaxDist>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else if (eps == 0.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- epsfac = 1.;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else if (std::isinf(p))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (isinf(p))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- epsfac = 1. / (1. + eps);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- epsfac = 1. / std::pow((1. + eps), p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -153,7 +153,7 @@ template<typename MinMaxDist>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Compute initial min and max distances */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MinMaxDist::rect_rect_p(tree, rect1, rect2, p, &min_distance, &max_distance);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if(std::isinf(max_distance)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if(isinf(max_distance)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *msg = "Encountering floating point overflow. "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "The value of p too large for this dataset; "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "For such large p, consider using the special case p=np.inf . ";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git scipy/spatial/ckdtree/src/sparse_distances.cxx scipy/spatial/ckdtree/src/sparse_distances.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 14ccf25a3..984e2c4ab 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/spatial/ckdtree/src/sparse_distances.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/spatial/ckdtree/src/sparse_distances.cxx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -66,7 +66,7 @@ traverse(const ckdtree *self, const ckdtree *other,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (d <= tub) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (CKDTREE_LIKELY(p == 2.0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- d = std::sqrt(d);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else if ((p != 1) && (!std::isinf(p)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if ((p != 1) && (!isinf(p)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- d = std::pow(d, 1. / p);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- coo_entry e = {sindices[i], oindices[j], d};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -139,13 +139,13 @@ sparse_distance_matrix(const ckdtree *self, const ckdtree *other,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if(CKDTREE_LIKELY(self->raw_boxsize_data == NULL)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), MinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, MinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), MinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, MinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(CKDTREE_LIKELY(p == 2), BoxMinkowskiDistP2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(p == 1, BoxMinkowskiDistP1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- HANDLE(std::isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ HANDLE(isinf(p), BoxMinkowskiDistPinf)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- HANDLE(1, BoxMinkowskiDistPp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-macosx-version-min.diff b/python/py-scipy/files/patch-macosx-version-min.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1e19c5786f9..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/files/patch-macosx-version-min.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,20 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/_build_utils/compiler_helper.py.orig 2023-11-19 02:28:52.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/_build_utils/compiler_helper.py 2023-12-20 16:53:55.000000000 +0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -107,7 +107,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if sys.platform == 'darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Set min macOS version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- min_macos_flag = '-mmacosx-version-min=10.9'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ min_macos_flag = '-mmacosx-version-min=@MACOS_V@'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if has_flag(cc, min_macos_flag):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- args.append(min_macos_flag)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ext.extra_link_args.append(min_macos_flag)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -124,7 +124,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if sys.platform == 'darwin':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Set min macOS version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- min_macos_flag = '-mmacosx-version-min=10.9'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ min_macos_flag = '-mmacosx-version-min=@MACOS_V@'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if has_flag(cc, min_macos_flag):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- new_args.append(min_macos_flag)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- new_link_args.append(min_macos_flag)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-pyproject.toml.diff b/python/py-scipy/files/patch-pyproject.toml.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d65c59d5331..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/files/patch-pyproject.toml.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,50 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- pyproject.toml.orig 2024-01-11 23:28:08
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ pyproject.toml 2024-01-11 23:40:38
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11,13 +11,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build-backend = 'mesonpy'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- requires = [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Reason for `<`: future-proofing (0.14.0 released and known to work)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "meson-python>=0.12.1,<0.15.0",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "meson-python>=0.12.1",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Reason for `<`: we want to build the 1.11.x releases with 0.29.x (too many changes in 3.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "Cython>=0.29.35,<3.0", # when updating version, also update check in meson.build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Cython>=0.29.35", # when updating version, also update check in meson.build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Reason for `<`: future-proofing (2.11.1 is the most recent version)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "pybind11>=2.10.4,<2.11.1",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "pybind11>=2.10.4",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Reason for `<`: future-proofing (0.14.0 released and known to work)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "pythran>=0.12.0,<0.15.0",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "pythran>=0.12.0",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # NumPy dependencies - to update these, sync from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://github.com/scipy/oldest-supported-numpy/, and then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27,22 +27,22 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # now matches minimum supported version, keep here as separate requirement
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # to be able to sync more easily with oldest-supported-numpy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # loongarch64 requires numpy>=1.22.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy==1.22.0; python_version<'3.11' and platform_machine=='loongarch64'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy==1.22.0; python_version<'3.11' and platform_machine=='loongarch64'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # On Windows we need to avoid 1.21.6, 1.22.0 and 1.22.1 because they were
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # built with vc142. 1.22.3 is the first version that has 32-bit Windows
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # wheels *and* was built with vc141. So use that:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy==1.22.3; python_version=='3.9' and platform_system=='Windows' and platform_python_implementation != 'PyPy' and platform_machine!='loongarch64'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy==1.22.3; python_version=='3.10' and platform_system=='Windows' and platform_python_implementation != 'PyPy' and platform_machine!='loongarch64'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy==1.22.3; python_version=='3.9' and platform_system=='Windows' and platform_python_implementation != 'PyPy' and platform_machine!='loongarch64'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy==1.22.3; python_version=='3.10' and platform_system=='Windows' and platform_python_implementation != 'PyPy' and platform_machine!='loongarch64'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # default numpy requirements
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy==1.21.6; python_version=='3.9' and (platform_system!='Windows' and platform_machine!='loongarch64') and platform_python_implementation != 'PyPy'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy==1.21.6; python_version=='3.9' and (platform_system!='Windows' and platform_machine!='loongarch64') and platform_python_implementation != 'PyPy'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Note that 1.21.3 was the first version with a complete set of 3.10 wheels,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # however macOS was broken and it's safe C API/ABI-wise to build against 1.21.6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # (see oldest-supported-numpy issues gh-28 and gh-45)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy==1.21.6; python_version=='3.10' and (platform_system!='Windows' and platform_machine!='loongarch64') and platform_python_implementation != 'PyPy'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy==1.23.2; python_version=='3.11' and platform_python_implementation != 'PyPy'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- "numpy>=1.26.0,<1.27.0; python_version=='3.12'", # no `==` because we expect relevant bug fixes in 1.26.1/2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy==1.21.6; python_version=='3.10' and (platform_system!='Windows' and platform_machine!='loongarch64') and platform_python_implementation != 'PyPy'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy==1.23.2; python_version=='3.11' and platform_python_implementation != 'PyPy'",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #"numpy>=1.26.0,<1.27.0; python_version=='3.12'", # no `==` because we expect relevant bug fixes in 1.26.1/2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # For Python versions which aren't yet officially supported,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # we specify an unpinned NumPy which allows source distributions
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-use__STDC_NO_THREADS__.diff b/python/py-scipy/files/patch-use__STDC_NO_THREADS__.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 036335ff9d5..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-scipy/files/patch-use__STDC_NO_THREADS__.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,66 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/integrate/setup.py.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/integrate/setup.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -37,9 +37,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.add_library('mach', sources=mach_src, config_fc={'noopt': (__file__, 1)},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- _pre_build_hook=pre_build_hook)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.add_library('quadpack', sources=quadpack_src, _pre_build_hook=pre_build_hook)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- config.add_library('lsoda', sources=lsoda_src, _pre_build_hook=pre_build_hook)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- config.add_library('vode', sources=vode_src, _pre_build_hook=pre_build_hook)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- config.add_library('dop', sources=dop_src, _pre_build_hook=pre_build_hook)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.add_library('lsoda', sources=lsoda_src, _pre_build_hook=pre_build_hook, macros=[('__STDC_NO_THREADS__',1)])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.add_library('vode', sources=vode_src, _pre_build_hook=pre_build_hook, macros=[('__STDC_NO_THREADS__',1)])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ config.add_library('dop', sources=dop_src, _pre_build_hook=pre_build_hook, macros=[('__STDC_NO_THREADS__',1)])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Extensions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # quadpack:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/linalg/setup.py.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/linalg/setup.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -57,7 +57,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.add_extension('_flapack',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sources=sources,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends=depends,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- extra_info=lapack_opt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ extra_info=lapack_opt,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ define_macros=[('__STDC_NO_THREADS__',1)]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if uses_blas64():
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -94,7 +95,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ext = config.add_extension('_interpolative',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sources=[join('src', 'id_dist', 'src', '*.f'),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "interpolative.pyf"],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- extra_info=lapack_opt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ extra_info=lapack_opt,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ define_macros=[('__STDC_NO_THREADS__',1)]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ext._pre_build_hook = gfortran_legacy_flag_hook
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/optimize/setup.py.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/optimize/setup.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -79,10 +79,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends=[join('tnc', 'tnc.h')],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- **numpy_nodepr_api)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ local_macros = numpy_nodepr_api
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ local_macros['define_macros'].append(('__STDC_NO_THREADS__',1))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.add_extension('_cobyla',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sources=[join('cobyla', x) for x in [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'cobyla.pyf', 'cobyla2.f', 'trstlp.f']],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- **numpy_nodepr_api)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ **local_macros)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sources = ['minpack2.pyf', 'dcsrch.f', 'dcstep.f']
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- config.add_extension('_minpack2',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- scipy/sparse/linalg/_propack/setup.py.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ scipy/sparse/linalg/_propack/setup.py
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -73,7 +73,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extra_info=lapack_opt,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- undef_macros=['_OPENMP'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- f2py_options=f2py_options,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- depends=['setup.py'] + src)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ depends=['setup.py'] + src,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ define_macros=[('__STDC_NO_THREADS__',1)])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ext._pre_build_hook = pre_build_hook
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return config
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-v1.13.1-version-caps-pyproject.toml.diff b/python/py-scipy/files/patch-v1.13.1-version-caps-pyproject.toml.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0ea0a673811
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-scipy/files/patch-v1.13.1-version-caps-pyproject.toml.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyproject.toml.orig 2024-11-11 10:26:48
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyproject.toml 2024-11-11 10:27:41
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,13 +17,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ requires = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on meson-python is pre-emptive only (looser on purpose,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # since change of breakage in 0.16/0.17 is low)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "meson-python>=0.15.0,<0.18.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "meson-python>=0.15.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on Cython is pre-emptive only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Cython>=3.0.8,<3.1.0", # when updating version, also update check in meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on pybind11 is pre-emptive only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "pybind11>=2.12.0,<2.13.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "pybind11>=2.12.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on Pythran is pre-emptive only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "pythran>=0.14.0,<0.16.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "pythran>=0.14.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Comments on numpy build requirement range:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # and disabling build isolation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 3. The <2.3 upper bound is for matching the numpy deprecation policy,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # it should not be loosened.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "numpy>=2.0.0rc1,<2.3",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "numpy>=1.22.4,<2.3",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [project]
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-scipy/files/patch-version-caps-pyproject.toml.diff b/python/py-scipy/files/patch-version-caps-pyproject.toml.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0504d882ad4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-scipy/files/patch-version-caps-pyproject.toml.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyproject.toml.orig 2024-11-04 21:11:08
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyproject.toml 2024-11-04 21:12:18
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,10 +24,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on Cython is pre-emptive only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Cython>=3.0.8,<3.1.0", # when updating version, also update check in meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on pybind11 is pre-emptive only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "pybind11>=2.12.0,<2.13.0", # when updating version, also update check in scipy/meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "pybind11>=2.12.0", # when updating version, also update check in scipy/meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The upper bound on pythran is pre-emptive only; 0.16.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # is released/working at time of writing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "pythran>=0.14.0,<0.17.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "pythran>=0.14.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # numpy requirement for wheel builds for distribution on PyPI - building
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # against 2.x yields wheels that are also compatible with numpy 1.x at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,8 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note that building against numpy 1.x works fine too - users and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # redistributors can do this by installing the numpy version they like and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # disabling build isolation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "numpy>=2.0.0rc1,<2.3",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "numpy>=2.1.0rc1; python_version>='3.13'",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "numpy>=1.23.5,<2.3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [project]
</span></pre><pre style='margin:0'>
</pre>