{% set version = "1.10.1" %} package: name: scipy version: {{ version }} # use 'python_impl' in meta.yaml so it gets picked up by rendering # [python_impl == "pypy"] source: # The sdist distributed by scipy contains pre-compiled pythran sources, # as well as the relevant submodules; by taking the tarball from github # we can compile pythran ourselves (or not), but manually need to include # the submodules (not in tarball due to dear-github/dear-github#214) - url: https://github.com/scipy/scipy/archive/refs/tags/v{{ version }}.tar.gz sha256: 8f08e1742c9b09eb58640fa5a56031d6e1844806899e883fbe7447ca86fe8c55 # https://github.com/scipy/scipy/tree/v{{ version }}/scipy/_lib - git_url: https://github.com/scipy/boost-headers-only.git git_rev: 3af99e6d566043072e95bc882d32c9c26f37e0ba folder: scipy/_lib/boost - git_url: https://github.com/scipy/highs.git git_rev: 4a122958a82e67e725d08153e099efe4dad099a2 folder: scipy/_lib/highs - git_url: https://github.com/scipy/unuran.git git_rev: a63d39160e5ecc4402e7ed0e8417f4c3ff9634cb folder: scipy/_lib/unuran # https://github.com/scipy/scipy/tree/v{{ version }}/scipy/sparse/linalg/_propack - git_url: https://github.com/scipy/PROPACK.git git_rev: cc32f3ba6cf941e4f9f96d96e2fc5762ea0c1014 folder: scipy/sparse/linalg/_propack/PROPACK build: number: 0 # TODO: fix unknown build error skip: true # [(python_impl == "pypy") and (aarch64 or ppc64le)] requirements: build: - python # [build_platform != target_platform] - cross-python_{{ target_platform }} # [build_platform != target_platform] - cython # [build_platform != target_platform] - numpy # [build_platform != target_platform] - pybind11 # [build_platform != target_platform] - setuptools <60 # [build_platform != target_platform] - {{ compiler('c') }} - {{ compiler('cxx') }} # pythran code needs clang-cl on windows - clang # [win] - {{ compiler('fortran') }} # [unix] # WARNING: It's not recommended to use these MinGW compilers with python extensions # numpy.distutils has a complex mechanism to facilitate mixing gfortran and MSVC # https://pav.iki.fi/blog/2017-10-08/pywingfortran.html#building-python-wheels-with-fortran-for-windows - {{ compiler('m2w64_fortran') }} # [win] host: - libblas - libcblas - liblapack - python - setuptools <60 - cython - pybind11 - pythran - numpy - pip run: - python # see np_maxversion in https://github.com/scipy/scipy/blob/v{{ version }}/setup.py - {{ pin_compatible('numpy', upper_bound='1.27') }} # needed for scipy.datasets - pooch {% set tests_to_skip = "_not_a_real_test" %} # skip a test that fails with MKL + AVX512 (non-AVX512 passes), scipy/scipy#15533 {% set tests_to_skip = tests_to_skip + " or test_x0_equals_Mb[bicgstab]" %} # scipy/scipy#16927 {% set tests_to_skip = tests_to_skip + " or test_failure_to_run_iterations" %} # [linux] # these multithreading tests occasionally hang in emulation {% set tests_to_skip = tests_to_skip + " or test_immediate_updating" %} # [aarch64 or ppc64le] {% set tests_to_skip = tests_to_skip + " or test_mixed_threads_processes" %} # [aarch64 or ppc64le] {% set tests_to_skip = tests_to_skip + " or test_multiprocess[fft]" %} # [aarch64 or ppc64le] {% set tests_to_skip = tests_to_skip + " or (test__differential_evolution and test_parallel)" %} # [aarch64 or ppc64le] # on the slowest agents, these tests take more than 20min in emulation {% set tests_to_skip = tests_to_skip + " or (test_lsq_linear and test_large_rank_deficient)" %} # [aarch64 or ppc64le] {% set tests_to_skip = tests_to_skip + " or (test_iterative and test_precond_inverse[case1])" %} # [aarch64 or ppc64le] {% set tests_to_skip = tests_to_skip + " or (test_optimize and TestBrute and test_workers)" %} # [aarch64 or ppc64le] # tests that run into timeouts (set in scipy test suite) in emulation {% set tests_to_skip = tests_to_skip + " or (test_propack and test_examples)" %} # [aarch64 or ppc64le] # very slow tests for pypy in emulation {% set tests_to_skip = tests_to_skip + " or test_cont_basic[500" %} # [(python_impl == "pypy") and (aarch64 or ppc64le)] {% set tests_to_skip = tests_to_skip + " or TestDifferentialEvolutionSolver" %} # [(python_impl == "pypy") and (aarch64 or ppc64le)] {% set tests_to_skip = tests_to_skip + " or test_conditionally_positive_definite" %} # [(python_impl == "pypy") and (aarch64 or ppc64le)] {% set tests_to_skip = tests_to_skip + " or (TestBrute and test_workers)" %} # [(python_impl == "pypy") and (aarch64 or ppc64le)] {% set tests_to_skip = tests_to_skip + " or test_gh12922" %} # [(python_impl == "pypy") and (aarch64 or ppc64le)] test: requires: - pytest - pytest-timeout - pytest-xdist - mpmath commands: # show SIMD features (some failures occur depending on presence/absence of e.g. AVX512) - python -c "import numpy; numpy.show_config()" # the tests ppc64le and aarch64 are currently run through emulation in QEMU; # since this takes much longer, do not run the most heavy-weight tests, i.e. use # label='fast'; same for PyPy due to huge runtime; otherwise set label='full' {% set label = "'fast'" if (aarch64 or ppc64le or python_impl == "pypy") else "'full'" %} # for signature of scipy.test see below (note default: label='fast'): # https://github.com/scipy/scipy/blob/v1.7.0/scipy/_lib/_testutils.py#L27 {% set param = "verbose=1, label=" + label + ", tests=None" %} {% set extra = "extra_argv=['-k', 'not (" + tests_to_skip + ")', '-nauto', '--timeout=1200', '--durations=50']" %} - python -c "import scipy, sys; sys.exit(not scipy.test({{ param }}, {{ extra }}))" imports: - scipy # reference for public API is effectively # https://github.com/scipy/scipy/blob/main/scipy/_lib/tests/test_public_api.py - scipy.cluster - scipy.cluster.hierarchy - scipy.cluster.vq - scipy.constants - scipy.datasets - scipy.fft - scipy.fftpack - scipy.integrate - scipy.interpolate - scipy.io - scipy.io.arff - scipy.io.matlab - scipy.io.wavfile - scipy.linalg - scipy.linalg.blas - scipy.linalg.cython_blas - scipy.linalg.cython_lapack - scipy.linalg.interpolative - scipy.linalg.lapack - scipy.misc - scipy.ndimage - scipy.odr - scipy.optimize - scipy.signal - scipy.signal.windows - scipy.sparse - scipy.sparse.csgraph - scipy.sparse.linalg - scipy.spatial - scipy.spatial.distance - scipy.spatial.transform - scipy.special - scipy.stats - scipy.stats.contingency - scipy.stats.distributions - scipy.stats.mstats - scipy.stats.qmc - scipy.stats.sampling about: home: http://www.scipy.org/ license: BSD-3-Clause license_file: LICENSE.txt summary: Scientific Library for Python description: | SciPy is a Python-based ecosystem of open-source software for mathematics, science, and engineering. doc_url: http://www.scipy.org/docs.html dev_url: https://github.com/scipy/scipy extra: recipe-maintainers: - jakirkham - msarahan - rgommers - ocefpaf - h-vetinari