diff --git a/packages/py-nnmt/package.py b/packages/py-nnmt/package.py new file mode 100644 index 0000000000000000000000000000000000000000..7b722a7fee4d9a543b4d9bca4eb4d3add77c0c8a --- /dev/null +++ b/packages/py-nnmt/package.py @@ -0,0 +1,34 @@ +# 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 import * + + +class PyNnmt(PythonPackage): + """NNMT is an open-source, community centered Python package for collecting + reusable implementations of analytical methods for neuronal network model analysis + based on mean-field theory.""" + + homepage = "https://nnmt.readthedocs.io/en/latest/index.html" + pypi = "nnmt/nnmt-1.3.0.tar.gz" + + maintainers = ["rshimoura", "terhorstd"] + + version("1.3.0", sha256="0cb4f7c58e08520e383506b5b15fb0a9552801adc03fd1006b9e3dd17b1b636d") + + depends_on("py-setuptools@23.1.0:", type="build") + depends_on("py-numpy@1.8:", type=("build", "run")) + depends_on("py-scipy@0.14:", type=("build", "run")) + depends_on("py-cython@0.20:", type=("build", "run")) + depends_on("py-h5py@2.5:", type=("build", "run")) + depends_on("py-matplotlib@2.0:", type=("build", "run")) + depends_on("py-pint", type=("build", "run")) + depends_on("py-pyyaml", type=("build", "run")) + depends_on("py-requests", type=("build", "run")) + depends_on("py-mpmath", type=("build", "run")) + depends_on("py-decorator", type=("build", "run")) + depends_on("py-pytest@5.4:", type=("build", "run")) + depends_on("py-pytest-mock@3.1:", type=("build", "run")) + depends_on("python@3:", type=("build", "run")) diff --git a/packages/wf-human-multi-area-model/package.py b/packages/wf-human-multi-area-model/package.py new file mode 100644 index 0000000000000000000000000000000000000000..7cafb2c150b15adbba1473d2b4c2af9058879952 --- /dev/null +++ b/packages/wf-human-multi-area-model/package.py @@ -0,0 +1,68 @@ +# 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 import * + + +class WfHumanMultiAreaModel(Package): + """Meta-package to collect all dependencies of the Human Multi-Area-Model.""" + + git = "https://github.com/INM-6/human-multi-area-model" + maintainer = ["rshimoura", "terhorstd"] + + version("2.0.1", tag="v2.0.1") + version("master", branch="master") + + depends_on("nest@3.8:", type=("run", "test")) + depends_on("py-joblib@1.2.0:", type=("run", "test")) + depends_on("py-xlrd@2.0.1:", type=("run", "test")) + depends_on("py-matplotlib@3.7.3:", type=("run", "test")) + depends_on("py-pyyaml@6.0:", type=("run", "test")) + depends_on("py-numpy@1.23.5:", type=("run", "test")) + depends_on("py-seaborn@0.12.2:", type=("run", "test")) + depends_on("python@3.8:", type=("run", "test")) + depends_on("py-pandas@2.0.3:", type=("run", "test")) + depends_on("py-scipy@1.10.1:", type=("run", "test")) + depends_on("py-nnmt@1.3.0:", type=("run", "test")) + depends_on("py-dicthash@0.0.1:", type=("run", "test")) + depends_on("py-networkx@3.1:", type=("run", "test")) + depends_on("py-notebook@6.5.4:", type=("run", "test")) + depends_on("py-future@0.18.2:", type=("run", "test")) + + def install(self, spec, prefix): + install_tree(".", join_path(prefix, "notebooks")) + + def _nbconvert(self, nb, nb_out): + jupyter = Executable("jupyter") + args = [ + "nbconvert", + "--ExecutePreprocessor.kernel_name=python3", + "--execute", + "--to", + "notebook", + nb, + "--output", + nb_out + ] + try: + # execute notebook and save + jupyter(*args) + except Exception as e: + # if the above fails, re-run notebook to produce output with error + jupyter(*(args+["--allow-errors"])) + raise + + def _run_notebooks(self, output_dir): + mkdirp(output_dir) + self._nbconvert(join_path(self.prefix, "notebooks", "humam_tutorial.ipynb"), join_path(output_dir, "humam_tutorial.ipynb")) + + @run_after("install") + @on_package_attributes(run_tests=True) + def installcheck(self): + self._run_notebooks(join_path(self.stage.path, ".install_time_tests")) + copy_tree(join_path(self.stage.path, ".install_time_tests"), join_path(self.prefix, '.build')) + + def test_notebook(self): + self._run_notebooks(join_path(self.test_suite.stage, self.spec.format("out-{name}-{version}-{hash:7}"))) diff --git a/spack.yaml b/spack.yaml index ecfdadbfe8b99e77b951a08789966e2eb5676a40..25b7a776657083b5a6835337cf1664b3f9837862 100644 --- a/spack.yaml +++ b/spack.yaml @@ -66,6 +66,7 @@ spack: - wf-brainscales2-demos@9.0-a7 - wf-protein-association-rates@0.1 - wf-multi-area-model@1.2.0 + - wf-human-multi-area-model@2.0.1 - wf-uq-akar4@0.1 - wf-custom-python@0.1 #- py-cerebstats