# JH 2020

easyblock = 'PythonPackage'

name = 'h5py'
version = '2.10.0'

homepage = 'http://www.h5py.org/'
description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library,
 version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous
 amounts of data."""

toolchain = {'name': 'intel', 'version': '2020a'}
toolchainopts = {'usempi': True}

source_urls = [PYPI_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d']

builddependencies = [('pkgconfig', '1.5.1', '-Python-3.8.2')]

dependencies = [
    ('Python', '3.8.2'),
    ('SciPy-bundle', '2020.03', '-Python-3.8.2'),
    ('HDF5', '1.10.6', '', ('iimpi', '2020a')),
]

use_pip = False
download_dep_fail = True

# required because we're building Python packages using Intel compilers on top of Python built with GCC
check_ldshared = True

# to really use mpi enabled hdf5 we now seem to need a configure step, which is the reason we can't use pip
prebuildopts = ' python setup.py configure --mpi --hdf5=$EBROOTHDF5 && '

# skip regular 'import h5py', and run it via mpirun (since 'import h5py' results in an MPI_Init call)
options = {'modulename': False}
sanity_check_commands = ["%(mpi_cmd_prefix)s python -c 'import %(name)s'"]

moduleclass = 'data'
