# IT4Innovations 2022
# JK

easyblock = "PythonBundle"
name = 'BoltzTraP2'
version = '22.6.1'

homepage = 'https://www.tuwien.at/en/tch/tc/theoretical-materials-chemistry/boltztrap2'
docurls = 'https://boltztrap2y.readthedocs.io/en/latest/BoltzTraP2.html'
description = """BoltzTraP2 is a modern implementation of the smoothed Fourier
  interpolation algorithm for electronic bands that formed the base of the original
  and widely used BoltzTraP code."""

toolchain = {'name': 'intel', 'version': '2022a'}

dependencies = [
    ('Python', '3.10.4'),
    ('SciPy-bundle', '2022.05'),
    ('matplotlib', '3.5.2'),
    ('spglib-python', '2.0.0'),
    ('ASE', '3.22.1'),
    ('netCDF', '4.9.0'),
    ('HDF5', '1.12.2'), # for netCDF Python library
    ('FFTW', '3.3.10'),
    ('pyFFTW', '0.13.0'),
    ('VTK', '9.2.2'),
]

builddependencies = [
    ('CMake', '3.23.1'),
]

use_pip = True
sanity_pip_check = True
exts_default_options = {'source_urls': [PYPI_SOURCE]}
exts_list = [
    # netCDF4 time manipulation dependency
    ('cftime', '1.6.2', {
        'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'],
    }),
    ('netCDF4', '1.6.1', {
        'checksums': ['ba8dc5d65293a99f1afb8c2acf588d903fdfdc1963a62545b677fa2734262a78'],
    }),
    (name, version, {
        'checksums': ['cc4291b0d8393fe28a402781e3d4e28925d19aeb2faf5cf0b2c1e1a6965d91f0'],
    }),
]

# checks boltztrap2,netcdf4 instead of BoltzTraP2,netCDF4
skipsteps = ['sanitycheck']

# run manually
sanity_check_commands = [
    'btp2 interpolate -h',
    'python -c "import netCDF4',
    'python -c "import BoltzTraP2"',
]

moduleclass = 'python'
