From dca6ad39d71687255b39dbbe500dd2c251434cb6 Mon Sep 17 00:00:00 2001
From: Shailesh Appukuttan <appukuttan.shailesh@gmail.com>
Date: Wed, 23 Feb 2022 14:11:58 +0100
Subject: [PATCH] ADD recipes for SciUnit, Cerebrus, Quantities-SciDash

---
 packages/py-cerebrus/package.py           | 20 ++++++++++++++
 packages/py-quantities-scidash/package.py | 19 +++++++++++++
 packages/py-sciunit/package.py            | 33 +++++++++++++++++++++++
 spack.yaml                                |  4 +++
 4 files changed, 76 insertions(+)
 create mode 100644 packages/py-cerebrus/package.py
 create mode 100644 packages/py-quantities-scidash/package.py
 create mode 100644 packages/py-sciunit/package.py

diff --git a/packages/py-cerebrus/package.py b/packages/py-cerebrus/package.py
new file mode 100644
index 00000000..a274ddea
--- /dev/null
+++ b/packages/py-cerebrus/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2021 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 PyCerebrus(PythonPackage):
+    """Lightweight, extensible schema and data validation tool for Python dictionaries
+    """
+
+    homepage = "http://docs.python-cerberus.org/"
+    pypi     = "Cerberus/Cerberus-1.3.4.tar.gz"
+    git      = "https://github.com/pyeve/cerberus.git"
+
+    version('1.3.4', sha256='d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c')
+
+    depends_on('python@3.6.9:')
+    depends_on('py-setuptools',     type=('build', 'run'))
\ No newline at end of file
diff --git a/packages/py-quantities-scidash/package.py b/packages/py-quantities-scidash/package.py
new file mode 100644
index 00000000..b92484b7
--- /dev/null
+++ b/packages/py-quantities-scidash/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2021 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 PyQuantitiesScidash(PythonPackage):
+    """Support for physical quantities with units, based on numpy
+    """
+
+    homepage = "http://python-quantities.readthedocs.io/"
+    pypi     = "quantities-scidash/quantities-scidash-0.12.4.3.tar.gz"
+    git      = "https://github.com/python-quantities/python-quantities.git"
+
+    version('0.12.4.3', sha256='c281383b989ae19bfe1526c09e452c82880b633a735f9494d8bb469412a33ea2')
+
+    depends_on('python@3.6.9:')
\ No newline at end of file
diff --git a/packages/py-sciunit/package.py b/packages/py-sciunit/package.py
new file mode 100644
index 00000000..dfb89881
--- /dev/null
+++ b/packages/py-sciunit/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2021 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 PySciUnit(PythonPackage):
+    """A test-driven framework for formally validating scientific models against data
+    """
+
+    homepage = "http://sciunit.scidash.org/"
+    pypi     = "sciunit/sciunit-0.2.5.1.tar.gz"
+    git      = "https://github.com/scidash/sciunit.git"
+
+    version('0.2.5.1', sha256='6148704f92a29c9d6de65ca9455b03ebe1f05101dae5e706aee2186e5a09fab3')
+
+    depends_on('python@3.6.9:')
+    depends_on('py-beautifulsoup4',             type=('build', 'run'))
+    depends_on('py-cerebrus@1.3.4',             type=('build', 'run'))
+    depends_on('py-deepdiff',                   type=('build', 'run'))
+    depends_on('py-gitpython',                  type=('build', 'run'))
+    depends_on('py-importlib-metadata',         type=('build', 'run'))
+    depends_on('py-ipykernel',                  type=('build', 'run'))
+    depends_on('py-ipython',                    type=('build', 'run'))
+    depends_on('py-jsonpickle',                 type=('build', 'run'))
+    depends_on('py-lxml',                       type=('build', 'run'))
+    depends_on('py-matplotlib',                 type=('build', 'run'))
+    depends_on('py-nbconvert',                  type=('build', 'run'))
+    depends_on('py-nbformat',                   type=('build', 'run'))
+    depends_on('py-pandas@0.18:',               type=('build', 'run'))
+    depends_on('quantities-scidash@0.12.4.3:',  type=('build', 'run'))  
\ No newline at end of file
diff --git a/spack.yaml b/spack.yaml
index 0d262fa1..ba78a315 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -19,6 +19,7 @@ spack:
     - py-pandas %gcc@10.3.0
     - py-seaborn %gcc@10.3.0
     - py-matplotlib %gcc@10.3.0
+    - py-cerebrus %gcc@10.3.0
     # EBRAINS simulators
     - nest@3.0 +python +gsl +mpi %gcc@10.3.0
     - arbor +mpi ^python@3:3.9 %gcc@10.3.0
@@ -37,4 +38,7 @@ spack:
     - funniest1022 %gcc@10.3.0
     # NRP
     - py-torch~mkldnn~cuda~cudnn~onnx_ml~rocm~tensorpipe~mpi~distributed ^protobuf@:3.17.999 %gcc@10.3.0
+    # Other tools and services
+    - py-sciunit@0.2.5.1 %gcc@10.3.0
+    - py-quantities-scidash@0.12.4.3 %gcc@10.3.0
   concretization: together
-- 
GitLab