diff --git a/install_spack_env.sh b/install_spack_env.sh index e2ad7f3963b425d99c281f740a8329143f825b43..2c1b99ef1d2c9ac48c379c6b131ea62975279594 100644 --- a/install_spack_env.sh +++ b/install_spack_env.sh @@ -187,7 +187,7 @@ if [ -n "${OCI_CACHE_PREFIX}" ]; then fi # temporarily skip packages that fail -spack rm hxtorch jaxsnn pynn-brainscales wf-brainscales2-demos py-bsb py-snudda r-sbtabvfgen +spack rm hxtorch jaxsnn pynn-brainscales wf-brainscales2-demos py-snudda r-sbtabvfgen # install the environment, use 2 jobs to reduce the amount of required RAM # delay exit code until we have updated the cache below diff --git a/packages/py-arborize/package.py b/packages/py-arborize/package.py new file mode 100644 index 0000000000000000000000000000000000000000..f897963fe137fb405143b9b74a20374543640185 --- /dev/null +++ b/packages/py-arborize/package.py @@ -0,0 +1,26 @@ +# 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 PyArborize(PythonPackage): + """ + A framework to package NEURON cell models following a clear separation between cell model description and its implementation in NEURON. + Cell models described using this framework are highly portable, testable and distributable. + """ + + homepage = "https://github.com/dbbs-lab/arborize" + pypi = "arborize/arborize-4.1.0.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.1.0", sha256="2cb88b890fa69de42a49b38ea4defd0caa4ee91b34f9b75216e1536d9058f57f") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-numpy@1.21:") + depends_on("py-errr@1.2:") + depends_on("py-morphio@3.3.6:4") diff --git a/packages/py-blessed/package.py b/packages/py-blessed/package.py new file mode 100644 index 0000000000000000000000000000000000000000..c40b13ca210622b062cc0ff07767fdbefd99694c --- /dev/null +++ b/packages/py-blessed/package.py @@ -0,0 +1,42 @@ +# 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 PyBlessed(PythonPackage): + """Blessed is a thin, practical wrapper around terminal capabilities in + Python.""" + + homepage = "https://github.com/jquast/blessed" + pypi = "blessed/blessed-1.15.0.tar.gz" + + license("MIT") + + # begin EBRAINS (added): add version + version("1.20.0", sha256="2cdd67f8746e048f00df47a2880f4d6acbcdb399031b604e34ba8f71d5787680") + # end EBRAINS + version("1.19.0", sha256="4db0f94e5761aea330b528e84a250027ffe996b5a94bf03e502600c9a5ad7a61") + version("1.18.1", sha256="8b09936def6bc06583db99b65636b980075733e13550cb6af262ce724a55da23") + version("1.18.0", sha256="1312879f971330a1b7f2c6341f2ae7e2cbac244bfc9d0ecfbbecd4b0293bc755") + version("1.17.12", sha256="580429e7e0c6f6a42ea81b0ae5a4993b6205c6ccbb635d034b4277af8175753e") + version("1.17.11", sha256="7d4914079a6e8e14fbe080dcaf14dee596a088057cdc598561080e3266123b48") + version("1.17.10", sha256="58b9464609f54e2eca5f5926db590a5b01fefef882844ce05064f483b8f96c26") + version("1.17.9", sha256="0d497a5be8a808b7300c00bf8303e7ba9fd11f6063a67bb924a475e5bfa7a9bb") + version("1.17.8", sha256="7671d057b2df6ddbefd809009fb08feb2f8d2d163d240b5e765088a90519b2f1") + version("1.17.7", sha256="0329a3d1db91328986a6dfd36475dbc498c867090f0433cdcc1a45a5eb2067e4") + version("1.17.6", sha256="a9a774fc6eda05248735b0d86e866d640ca2fef26038878f7e4d23f7749a1e40") + version("1.17.5", sha256="926916492220af741657ec4668aba95f54a8c32445e765cfa38c7ccd3343cc6f") + version("1.17.4", sha256="320a619c83298a9c9d632dbd8fafbb90ba9a38b83c7e64726c572fb186dd0781") + version("1.17.3", sha256="cc38547175ae0a3a3d4e5dcc7e7478a5a6bf0a6b5f4d9c6b2e5eadbe4475cb0e") + version("1.17.0", sha256="38632d60dd384de9e9be0ee5b6e1c6130f96efd0767c6ca530a453da36238c25") + version("1.16.1", sha256="a222783b09f266cf76f5a01f4dfd9de79650f07cbefe2cbc67ec7bb9577c1dfa") + version("1.16.0", sha256="34b78e9b56c2ba2f6a9a625cc989d6cf4ae8ae87dcc4ed8ad144660ae4cf7784") + version("1.15.0", sha256="777b0b6b5ce51f3832e498c22bc6a093b6b5f99148c7cbf866d26e2dec51ef21") + + depends_on("py-setuptools", type="build") + depends_on("py-wcwidth@0.1.4:", type=("build", "run")) + depends_on("py-six@1.9.0:", type=("build", "run")) diff --git a/packages/py-bsb-core/package.py b/packages/py-bsb-core/package.py new file mode 100644 index 0000000000000000000000000000000000000000..eacb83a4a7303df7c19502402ac069c14430834c --- /dev/null +++ b/packages/py-bsb-core/package.py @@ -0,0 +1,59 @@ +# 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 PyBsbCore(PythonPackage): + """ + The BSB is a component framework for neural modeling, which focuses on component + declarations to piece together a model. + """ + + homepage = "https://bsb.readthedocs.io" + pypi = "bsb-core/bsb_core-5.0.0.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("5.0.2", sha256="414be0f3ba72b2f656b89f8e4636e4a1d19b1f4dc9ba9360cc984020cb1859dc") + version("5.0.1", sha256="7cb905ee38419709b4ead2ffb40e1005d813d2c6780706b3f5eb2696aabeb983") + version("5.0.0", sha256="08e1776d351a8bb5c056ffbd8108d0bd941f71518b475aecbad9f22050b7cc91") + + variant('parallel', default=True, + description='Build with MPI bindings') + + depends_on("python@3.9:3.12", type=("build", "run")) + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-numpy@1.19:") + depends_on("py-scipy@1.5:") + depends_on("py-scikit-learn@1.0:") + depends_on("py-rtree@1.0:") + depends_on("py-psutil@5.8:") + depends_on("py-pynrrd@1.0:") + depends_on("py-toml@0.10:") + depends_on("py-requests") + depends_on("py-urllib3@2:") + depends_on("py-appdirs@1.4:") + depends_on("py-neo") + depends_on("py-tqdm@4.50:") + depends_on("py-shortuuid") + depends_on("py-quantities@0.15.0:") + depends_on("py-morphio@3.3:") + depends_on("py-errr@1.2.0:") + depends_on("py-dashing@0.1.0:") + depends_on("py-exceptiongroup") + + depends_on('mpi', when='+parallel') + depends_on('py-mpi4py', when='+parallel') + depends_on('py-mpipool@2.2.1:3', when='+parallel') + depends_on('py-mpilock@1.1:', when='+parallel') + + + def setup_build_environment(self, env): + env.set("SPATIALINDEX_C_LIBRARY", self.spec["libspatialindex"].libs[0]) + + def setup_run_environment(self, env): + self.setup_build_environment(env) diff --git a/packages/py-bsb-hdf5/package.py b/packages/py-bsb-hdf5/package.py index 059f2df3b1c74c9e70b91c3d0ed8e5ac47a2d6a8..36fbc5d08f22ef5f7c02e8e9cf68530d7e3fffc2 100644 --- a/packages/py-bsb-hdf5/package.py +++ b/packages/py-bsb-hdf5/package.py @@ -10,13 +10,13 @@ class PyBsbHdf5(PythonPackage): """An HDF-5 based storage engine for the BSB framework.""" homepage = "https://github.com/dbbs-lab/bsb-hdf5" - url = "https://pypi.org/packages/py3/b/bsb_hdf5/bsb_hdf5-0.8.3-py3-none-any.whl" + pypi = "bsb-hdf5/bsb_hdf5-5.0.4.tar.gz" - maintainers = ["helveg"] + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] - version('0.8.3', sha256="38162bfe9470b87cb30a2bff78dce68fc1b97f2df7d7e3b288c16b671f7579e5", expand=False) + version('5.0.2', sha256='ed11177887848a3f177982201e1adb5770131bd541055a96935af38b39439fac') - depends_on("py-setuptools", type="build") - # depends_on("py-bsb@4.0.0a57:") + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-bsb-core@5.0.0:",when='@5.0.2') depends_on("py-shortuuid") - depends_on("py-h5py@3.0:") diff --git a/packages/py-bsb-json/package.py b/packages/py-bsb-json/package.py new file mode 100644 index 0000000000000000000000000000000000000000..c692a2c5a6f0b09c4989a59566453a53a20baefa --- /dev/null +++ b/packages/py-bsb-json/package.py @@ -0,0 +1,22 @@ +# 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 PyBsbJson(PythonPackage): + """A plugin that allows the user to write their models' configuration in the json format, for the BSB framework.""" + + homepage = "https://github.com/dbbs-lab/bsb-json" + pypi = "bsb-json/bsb_json-4.2.2.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.2.2", sha256="0c9e0af2a50f8ebbce353ba19bd11bafaf2536d74f0a79af3b0b6d8241fa6937") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-bsb-core@5.0.0:") + depends_on("py-shortuuid") diff --git a/packages/py-bsb-nest/package.py b/packages/py-bsb-nest/package.py new file mode 100644 index 0000000000000000000000000000000000000000..9d81556a860aad45d834cec30b09136fdb0b09be --- /dev/null +++ b/packages/py-bsb-nest/package.py @@ -0,0 +1,24 @@ +# 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 PyBsbNest(PythonPackage): + """ + The BSB-NEST is a component framework for neural modeling, used for simulate SNN with NEST software. + """ + + homepage = "https://github.com/dbbs-lab/bsb-nest" + pypi = "bsb-nest/bsb_nest-4.3.2.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.3.2", sha256="478aa2937ca554ff291ce726cc69e1c1b283d7353a56e3b6878b585ed0684041") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-bsb-core@5.0.2:") + depends_on("nest") diff --git a/packages/py-bsb-neuron/package.py b/packages/py-bsb-neuron/package.py new file mode 100644 index 0000000000000000000000000000000000000000..6e4ec130bb75ded76917d248d43f3e01db0bbfe5 --- /dev/null +++ b/packages/py-bsb-neuron/package.py @@ -0,0 +1,26 @@ +# 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 PyBsbNeuron(PythonPackage): + """ + The BSB-NEURON is a component framework for neural modeling, used for simulate with NEURON software. + """ + + homepage = "https://github.com/dbbs-lab/bsb-neuron" + pypi = "bsb-neuron/bsb_neuron-4.2.2.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.2.2", sha256="e7570c0cb17d31349eb8e88487e8ba48653f0fad0d7c232df8815cadde34a941") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-bsb-core@5.0.2:") + depends_on("neuron") + depends_on("py-arborize@4.1:") + depends_on("py-nrn-patch@4:") diff --git a/packages/py-bsb-yaml/package.py b/packages/py-bsb-yaml/package.py new file mode 100644 index 0000000000000000000000000000000000000000..d91b3301d65e361289df2301c3d9f1b399a9259b --- /dev/null +++ b/packages/py-bsb-yaml/package.py @@ -0,0 +1,23 @@ +# 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 PyBsbYaml(PythonPackage): + """A plugin that allows the user to write their models' configuration in the yaml format, for the BSB framework.""" + + homepage = "https://github.com/dbbs-lab/bsb-yaml" + pypi = "bsb-yaml/bsb_yaml-4.2.2.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.2.2", sha256="c5614bc5fe57b78a445303756819a8d4ba032924484f88a07f6c26dd7e5afbec") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-bsb-core@5.0.0:") + depends_on("py-pyyaml@6.0:") + depends_on("py-shortuuid") diff --git a/packages/py-bsb/package.py b/packages/py-bsb/package.py deleted file mode 100644 index 397bdbd3af00464bb89db6c2de7e5cd2a7529041..0000000000000000000000000000000000000000 --- a/packages/py-bsb/package.py +++ /dev/null @@ -1,51 +0,0 @@ -# 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 PyBsb(PythonPackage): - """ - The BSB is a component framework for neural modeling, which focuses on component - declarations to piece together a model. - """ - - homepage = "https://bsb.readthedocs.io" - url = "https://pypi.org/packages/py3/b/bsb/bsb-4.0.0a57-py3-none-any.whl" - - maintainers = ["helveg"] - - version("4.0.0a57", sha256="5da15799aa8994894ff5371561d534b43beffaa79461189c94080071359f4076", expand=False) - - depends_on("python@3.8:", type=("build", "run")) - depends_on("py-setuptools", type="build") - depends_on("py-numpy@1.19:") - depends_on("py-scipy@1.5:") - depends_on("py-scikit-learn@1.0:") - depends_on("py-plotly") - depends_on("py-rtree@1.0:") - depends_on("py-psutil@5.8:") - depends_on("py-pynrrd@1.0:") - depends_on("py-toml") - depends_on("py-requests") - depends_on("py-appdirs@1.4:") - depends_on("py-neo") - depends_on("py-tqdm@4.50:") - depends_on("py-shortuuid") - depends_on("py-quantities") - depends_on("py-pyyaml@6.0:") - depends_on("py-morphio@3.3:") - depends_on("py-bsb-hdf5@0.8.3:") - depends_on("py-errr@1.2.0:") - depends_on("py-colour@0.1.5:") - - def setup_build_environment(self, env): - env.set("SPATIALINDEX_C_LIBRARY", self.spec["libspatialindex"].libs[0]) - - def setup_run_environment(self, env): - self.setup_build_environment(env) - - skip_modules = ['bsb.simulators.arbor', 'bsb.simulators.arbor.devices'] - diff --git a/packages/py-dashing/package.py b/packages/py-dashing/package.py new file mode 100644 index 0000000000000000000000000000000000000000..48d63dc4d1f3dccbba02dae152f5f9d131ab9c05 --- /dev/null +++ b/packages/py-dashing/package.py @@ -0,0 +1,19 @@ +# 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 PyDashing(PythonPackage): + """Dashing is a library to quickly create terminal-based dashboards in Python.""" + + homepage = "https://github.com/FedericoCeratto/dashing" + pypi = "dashing-next/dashing_next-0.1.0.tar.gz" + + version("0.1.0", sha256="9d48e97fce430a9cfb47d5627041b001ab306b65e97d6967fe86e2c25e324612") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-blessed@1.20.0:") diff --git a/packages/py-exceptiongroup/package.py b/packages/py-exceptiongroup/package.py new file mode 100644 index 0000000000000000000000000000000000000000..1fe03cd45fd240264e40bf6109e9787332d72638 --- /dev/null +++ b/packages/py-exceptiongroup/package.py @@ -0,0 +1,22 @@ +# 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 PyExceptiongroup(PythonPackage): + """A backport of the BaseExceptionGroup and ExceptionGroup classes from Python 3.11.""" + + homepage = "https://github.com/agronholm/exceptiongroup" + pypi = "exceptiongroup/exceptiongroup-1.0.4.tar.gz" + + # begin EBRAINS (added): add version + version("1.2.0", sha256="91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68") + # end EBRAINS + version("1.1.1", sha256="d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785") + version("1.0.4", sha256="bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec") + + depends_on("py-flit-scm", type="build") diff --git a/packages/py-mpilock/package.py b/packages/py-mpilock/package.py new file mode 100644 index 0000000000000000000000000000000000000000..16e9a60cb3d3b6f027c1622bdec1b45523eb1428 --- /dev/null +++ b/packages/py-mpilock/package.py @@ -0,0 +1,21 @@ +# 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 PyMpilock(PythonPackage): + """mpilock offers a WindowController class with a high-level API for parallel access to resources. """ + + homepage = "https://github.com/Helveg/mpilock" + pypi = "mpilock/mpilock-1.1.0-py3-none-any.whl" + + version("1.1.0", sha256="0902ef859a7b3dfb4312a3c46332302493aa14fa398b610554706b0b9e7cb57c", expand=False) + + maintainers=["helveg"] + + depends_on("py-setuptools", type="build") + depends_on("py-mpi4py@3.0.3:") + depends_on("py-numpy@1.20.0:") diff --git a/packages/py-mpipool/package.py b/packages/py-mpipool/package.py new file mode 100644 index 0000000000000000000000000000000000000000..fb6f112a8b70caecb251795805f035b6953f8e30 --- /dev/null +++ b/packages/py-mpipool/package.py @@ -0,0 +1,24 @@ +# 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 PyMpipool(PythonPackage): + """mpipool offers MPI based parallel execution of tasks through implementations of Python's standard library interfaces""" + + homepage = "https://github.com/mpipool/mpipool" + pypi = "mpipool/mpipool-2.2.1.tar.gz" + + version("2.2.1", sha256="dc735b994349ae3e06fce7c3601523ba062125ffa6dd4c6c51a94c168c9ff92c") + + maintainers=["helveg"] + + depends_on("py-flit-core@3.2:4", type="build") + depends_on("py-mpi4py@3.0.3:") + depends_on("py-errr@1.0:") + depends_on("py-tblib@1.7.0:") + depends_on("py-dill@0.3.3:") diff --git a/packages/py-nmodl-glia/package.py b/packages/py-nmodl-glia/package.py new file mode 100644 index 0000000000000000000000000000000000000000..acd06eaf5934697ae1d40c52e664acd6401c8af5 --- /dev/null +++ b/packages/py-nmodl-glia/package.py @@ -0,0 +1,25 @@ +# 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 PyNmodlGlia(PythonPackage): + """ + Patch to use NMODL within the BSB + """ + + homepage = "https://github.com/dbbs-lab/glia" + pypi = "nmodl-glia/nmodl_glia-4.0.1.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.0.1", sha256="c3b3dad203eac1f394d6a4ca6e4f42d25d5eebc013970309f1453c7ca3e5c5a3") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-numpy@1.21:") + depends_on("py-errr@1.2:") + depends_on("py-nmodl@0.5:") diff --git a/packages/py-nmodl/fix-setup-requirements.patch b/packages/py-nmodl/fix-setup-requirements.patch new file mode 100644 index 0000000000000000000000000000000000000000..52ec60c20f9a468047b10b505adf509f8946843d --- /dev/null +++ b/packages/py-nmodl/fix-setup-requirements.patch @@ -0,0 +1,21 @@ +diff --git a/setup.py b/setup.py +index c956004c9..671a6619e 100644 +--- a/setup.py ++++ b/setup.py +@@ -131,16 +131,6 @@ setup( + zip_safe=False, + setup_requires=[ + "jinja2>=2.9.3", +- "jupyter-client", +- "jupyter", +- "myst_parser", +- "mistune<3", # prevents a version conflict with nbconvert +- "nbconvert", +- "nbsphinx>=0.3.2", +- "pytest>=3.7.2", +- "sphinxcontrib-applehelp<1.0.3", +- "sphinx<6", +- "sphinx-rtd-theme", + ] + + install_requirements, + install_requires=install_requirements, diff --git a/packages/py-nmodl/package.py b/packages/py-nmodl/package.py new file mode 100644 index 0000000000000000000000000000000000000000..fd5fb0118803f1c4e32ac943e5de271f45ee9a16 --- /dev/null +++ b/packages/py-nmodl/package.py @@ -0,0 +1,38 @@ +# 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 PyNmodl(PythonPackage): + """The NMODL Framework is a code generation engine for NEURON MODeling Language (NMODL).""" + + homepage = "https://github.com/BlueBrain/nmodl" + + git = "https://github.com/BlueBrain/nmodl" + + license("Apache-2.0") + maintainers = ["bbp.opensource"] + + version("0.5", tag="0.5", commit="ac272785dc444c8444b085d121f08b7575bb6647", submodules=True) + + patch("fix-setup-requirements.patch", when="@:0.6") + + depends_on("flex@2.6:") + depends_on("bison@3.0:") + depends_on("cmake@3.15:", type="build") + depends_on("python@3.9:", type=("build","run")) + depends_on("py-setuptools", type="build") + depends_on("py-scikit-build", type="build") + depends_on("py-jinja2@2.9.3:", type="build") + depends_on("py-pyyaml@3.13:", type="build") + depends_on("py-pytest") + depends_on("py-sympy@1.3:", type=("build","run")) + depends_on("py-find-libpython", type=("build","run")) + depends_on("py-importlib-metadata", when="^python@:3.8", type=("build","run")) + depends_on("py-importlib-resources", when="^python@:3.8", type=("build","run")) + + def setup_build_environment(self, env): + env.set("NMODL_WHEEL_VERSION", self.version) diff --git a/packages/py-nrn-patch/package.py b/packages/py-nrn-patch/package.py new file mode 100644 index 0000000000000000000000000000000000000000..aaf40362a939c8ee13d31ead0ca5a9ea5f08acaa --- /dev/null +++ b/packages/py-nrn-patch/package.py @@ -0,0 +1,29 @@ +# 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 PyNrnPatch(PythonPackage): + """A patch to make the BSB interface with NEURON software""" + + homepage = "https://github.com/dbbs-lab/patch" + pypi = "nrn-patch/nrn_patch-4.0.0.tar.gz" + + license("GPL-3.0-only") + maintainers = ["helveg","filimarc","drodarie"] + + version("4.0.0", sha256="0f95243798c7363826d7835023f7c9215577edd8d6695cc7caeb65a7fe8a54c0") + + depends_on("py-flit-core@3.2:4.0", type="build") + depends_on("py-numpy@1.21:") + depends_on("py-errr@1.2:") + depends_on("py-click@8.0:") + depends_on("py-appdirs@1.0:") + depends_on("py-cookiecutter@2.0:") + depends_on("py-black@0.24:") + depends_on("py-toml@0.1:") + depends_on("py-nmodl-glia@4.0:") + depends_on("neuron@8:10") diff --git a/packages/wf-bsb/package.py b/packages/wf-bsb/package.py new file mode 100644 index 0000000000000000000000000000000000000000..2e843818fe7a321b2c9d699c07a44524e2bf0e4b --- /dev/null +++ b/packages/wf-bsb/package.py @@ -0,0 +1,29 @@ +# 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 WfBsb(BundlePackage): + """Meta-package to collect all dependencies for the BSB.""" + + homepage="https://github.com/dbbs-lab/bsb" + + maintainers = ["helveg","filimarc","drodarie"] + + version("4.4") + + variant('nest', default=False, + description='Build with NEST interface') + variant('neuron', default=False, + description='Build with NEURON interface') + + depends_on("py-bsb-core@5.0.2:") + depends_on("py-bsb-hdf5@5.0.2:") + depends_on("py-bsb-json@4.2.2:") + depends_on("py-bsb-yaml@4.2.2:") + + depends_on("py-bsb-nest",when="+nest") + depends_on("py-bsb-neuron",when="+neuron") diff --git a/spack.yaml b/spack.yaml index 95062095a8c24f6d77445b7c460a510a599307e7..738c774ac7c617eb57b6c82e27a3b07b1bc91600 100644 --- a/spack.yaml +++ b/spack.yaml @@ -19,7 +19,12 @@ spack: - py-bluepyefe@2.3.6 - py-bluepymm@0.8.7 - py-bluepyopt@1.14.11 - - py-bsb@4.0.0a57 + - py-bsb-core@5.0.2 + - py-bsb-hdf5@5.0.2 + - py-bsb-yaml@4.2.2 + - py-bsb-json@4.2.2 + - py-bsb-nest@4.3.2 + - py-bsb-neuron@4.2.2 - py-ebrains-drive@0.6.0 - py-ebrains-kg-core@0.9.15 - py-ebrains-validation-client@0.9.1 @@ -65,6 +70,7 @@ spack: # Workflows (meta-packages) - wf-biobb - wf-brainscales2-demos@9.0-a8 + - wf-bsb@4.4 +nest +neuron # - wf-protein-association-rates@0.1 - wf-multi-area-model@1.2.0 - wf-human-multi-area-model@2.0.1