From 7bc692362b7640e86fe6a8de3b679f71b8938cb2 Mon Sep 17 00:00:00 2001
From: Robin De Schepper <robingilbert.deschepper@unipv.it>
Date: Tue, 26 Sep 2023 12:40:48 +0200
Subject: [PATCH] Add BSB package

---
 packages/py-bsb-hdf5/package.py | 22 ++++++++++++++
 packages/py-bsb/package.py      | 51 +++++++++++++++++++++++++++++++++
 packages/py-colour/package.py   | 18 ++++++++++++
 packages/py-errr/package.py     | 19 ++++++++++++
 packages/py-pynrrd/package.py   | 21 ++++++++++++++
 spack.yaml                      |  1 +
 6 files changed, 132 insertions(+)
 create mode 100644 packages/py-bsb-hdf5/package.py
 create mode 100644 packages/py-bsb/package.py
 create mode 100644 packages/py-colour/package.py
 create mode 100644 packages/py-errr/package.py
 create mode 100644 packages/py-pynrrd/package.py

diff --git a/packages/py-bsb-hdf5/package.py b/packages/py-bsb-hdf5/package.py
new file mode 100644
index 00000000..bd50769d
--- /dev/null
+++ b/packages/py-bsb-hdf5/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2023 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 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"
+
+    maintainers = ["helveg"]
+
+    version('0.8.3', sha256="38162bfe9470b87cb30a2bff78dce68fc1b97f2df7d7e3b288c16b671f7579e5", expand=False)
+
+    depends_on("py-setuptools", type="build")
+    # depends_on("py-bsb@4.0.0a57:")
+    depends_on("py-shortuuid")
+    depends_on("py-h5py@3.0:")
diff --git a/packages/py-bsb/package.py b/packages/py-bsb/package.py
new file mode 100644
index 00000000..fad71af2
--- /dev/null
+++ b/packages/py-bsb/package.py
@@ -0,0 +1,51 @@
+# Copyright 2013-2023 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-colour/package.py b/packages/py-colour/package.py
new file mode 100644
index 00000000..5a55b8f9
--- /dev/null
+++ b/packages/py-colour/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2023 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 PyColour(PythonPackage):
+    """Python color representations manipulation library (RGB, HSL, web, ...)"""
+
+    homepage = "https://github.com/vaab/colour"
+    pypi = "colour/colour-0.1.5.tar.gz"
+
+    maintainers = ["vaab"]
+
+    version("0.1.5", sha256="af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee")
+    depends_on("py-setuptools", type="build")
diff --git a/packages/py-errr/package.py b/packages/py-errr/package.py
new file mode 100644
index 00000000..1c699d0c
--- /dev/null
+++ b/packages/py-errr/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2023 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 PyErrr(PythonPackage):
+    """Elegant Python exception factories"""
+
+    homepage = "https://github.com/Helveg/errr"
+    pypi = "errr/errr-1.2.0.tar.gz"
+
+    maintainers = ["helveg"]
+
+    version("1.2.0", sha256="2824b83edbd1f61d354c60e36400b2e31ab83e2094acb837b86686892b866e76")
+
+    depends_on("py-setuptools", type="build")
diff --git a/packages/py-pynrrd/package.py b/packages/py-pynrrd/package.py
new file mode 100644
index 00000000..99093c34
--- /dev/null
+++ b/packages/py-pynrrd/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2023 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 PyPynrrd(PythonPackage):
+    """Python library for reading and writing NRRD files into and from numpy arrays"""
+
+    homepage = "https://github.com/mhe/pynrrd"
+    pypi = "pynrrd/pynrrd-0.4.0.tar.gz"
+
+    version("1.0.0", sha256="4eb4caba03fbca1b832114515e748336cb67bce70c7f3ae36bfa2e135fc990d2")
+
+    depends_on("py-setuptools", type="build")
+    depends_on("py-numpy@1.11.1:", type=("build", "run"))
+    depends_on("py-nptyping", type=("build", "run"))
+    depends_on("py-typing-extensions", type=("build", "run"))
+
diff --git a/spack.yaml b/spack.yaml
index 83560046..99109726 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -19,6 +19,7 @@ spack:
     - py-bluepyefe@2.2.18
     - py-bluepymm@0.7.65
     - py-bluepyopt@1.13.86
+    - py-bsb@4.0.0a57
     - py-ebrains-drive@0.5.1
     - py-ebrains-kg-core@0.9.15
     - py-efel@4.0.4
-- 
GitLab