easyblock = 'PythonBundle'

name = 'SciPy-bundle'
version = '2021.09'

homepage = 'https://python.org/'
description = "Bundle of Python packages for scientific software"

toolchain = {'name': 'intel', 'version': '2021.03'}
#toolchainopts = {'pic': True, 'lowopt': True}
toolchainopts = {'pic': True, 'optarch': 'mavx2'}

builddependencies = [('hypothesis', '6.14.6')]

dependencies = [
    ('Python', '3.9.6'),
    ('pybind11', '2.7.1'),  # required by scipy
]

use_pip = True

# order is important!
exts_list = [
    ('numpy', '1.21.2', {
        'sources': [SOURCE_ZIP],
        'patches': [
            'numpy-1.21.2-mkl.patch',
        ],
        #'prebuildopts': 'export CFLAGS="-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -ftree-vectorize -fno-math-errno -fPIC -O1 -ftz -fp-speculation=safe -fp-model source -fPIC" && ',
    }),
    ('scipy', '1.7.1'),
    ('mpi4py', '3.0.3', {
        'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'],
    }),
    ('numexpr', '2.7.3', {
        'checksums': ['43616529f9b7d1afc83386f943dc66c4da5e052f00217ba7e3ad8dd1b5f3a825'],
    }),
    ('Bottleneck', '1.3.2', {
        'checksums': ['20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573'],
    }),
    ('pandas', '1.2.4', {
        'preinstallopts': """sed -i 's@extra_compile_args = \["-Werror"\]@extra_compile_args = []@g' setup.py && """,
        'checksums': ['649ecab692fade3cbfcf967ff936496b0cfba0af00a55dfaacd82bdda5cb2279'],
    }),
    ('mpmath', '1.2.1', {
        'checksums': ['79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a'],
    }),
    ('deap', '1.3.1', {
        'checksums': ['11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f'],
    }),
]

sanity_pip_check = True

moduleclass = 'lang'
