Skip to content
Snippets Groups Projects
package.py 1.66 KiB
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack.package import *


class PyTvbMultiscale(PythonPackage):
    """
    Toolbox for Co-Simulation of TVB with NEST, NetPyNE and ANNarchy.
    """

    homepage = "https://github.com/the-virtual-brain/tvb-multiscale"
    url = "https://github.com/the-virtual-brain/tvb-multiscale/archive/refs/tags/2.1.0.ebrains.tar.gz"

    maintainers = ['dionperd', 'paulapopa', "ldomide", "vbragin"]

    version('2.1.0.ebrains', sha256='eab51e235f565cffbf300daa4b7c65a7afacde149e2eda0f49437db3c2429253')

    patch('tvb-multiscale-2.1.0-version-pep440.patch', when='@2.1.0.ebrains')

    # python_requires
    depends_on('python@3.8:3.11', type=('build', 'run'))

    # setup_requires
    depends_on('py-pip', type='build')
    depends_on('py-setuptools', type='build')

    # install_requires
    depends_on('py-tvb-framework', type=('build', 'run'))
    depends_on('py-tvb-contrib', type=('build', 'run'))
    depends_on('nest', type=('build', 'run'))
    depends_on('py-netpyne', type=('build', 'run'))
    depends_on('py-annarchy', type=('build', 'run'))  # TODO!
    depends_on('py-nestml', type=('build', 'run'))
    depends_on('py-elephant', type=('build', 'run'))
    depends_on('py-pyspike', type=('build', 'run'))
    depends_on('py-ray', type=('build', 'run'))

    # Test dependency
    depends_on('py-pytest', type='test')
    
    @run_after('install')
    @on_package_attributes(run_tests=True)
    def install_test(self):
        pytest = which('pytest')
        pytest('tvb_multiscale/tests')