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-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-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")