diff --git a/packages/hxtorch/package.py b/packages/hxtorch/package.py index b3453479d70f94df1f4eb35e0aba3ed530a64d19..7be0e3abc399f9a06a7186b39debacd14aa9538f 100644 --- a/packages/hxtorch/package.py +++ b/packages/hxtorch/package.py @@ -128,6 +128,9 @@ class Hxtorch(WafPackage): env.set('WAF_CONFIGURE_LD_LIBRARY_PATH', ':'.join(library)) env.prepend_path('PATH', ':'.join(path)) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('PYTHONPATH', self.prefix.lib) + def setup_run_environment(self, env): env.prepend_path('PYTHONPATH', self.prefix.lib) @@ -165,8 +168,11 @@ class Hxtorch(WafPackage): args = ['--test-execnone'] return args - # def install_test(self): - # with working_dir('spack-test', create=True): - # old_pythonpath = os.environ.get('PYTHONPATH', '') - # os.environ['PYTHONPATH'] = ':'.join([str(self.prefix.lib), old_pythonpath]) - # python('-v', '-X dev', '-c', 'import hxtorch; print(hxtorch.__file__)') + def install_test(self): + with working_dir('spack-test', create=True): + old_pythonpath = os.environ.get('PYTHONPATH', '') + os.environ['PYTHONPATH'] = ':'.join([str(self.prefix.lib), old_pythonpath]) + python('-c', 'import hxtorch; print(hxtorch.__file__)') + # ignore exit code for now + cmd_true = which("true") + cmd_true() diff --git a/packages/pynn-brainscales/package.py b/packages/pynn-brainscales/package.py index 44786008c321b4924580ddede9576908e3b2e6ba..5c7d33f7887cb816567dc619e7a2ac10eacb14d1 100644 --- a/packages/pynn-brainscales/package.py +++ b/packages/pynn-brainscales/package.py @@ -104,6 +104,9 @@ class PynnBrainscales(WafPackage): env.set('WAF_CONFIGURE_LD_LIBRARY_PATH', ':'.join(library)) env.prepend_path('PATH', ':'.join(path)) + def setup_dependent_build_environment(self, env, dependent_spec): + env.prepend_path('PYTHONPATH', self.prefix.lib) + def setup_run_environment(self, env): env.prepend_path('PYTHONPATH', self.prefix.lib) @@ -141,8 +144,11 @@ class PynnBrainscales(WafPackage): args = ['--test-execnone'] return args - # def install_test(self): - # with working_dir('spack-test', create=True): - # old_pythonpath = os.environ.get('PYTHONPATH', '') - # os.environ['PYTHONPATH'] = ':'.join([str(self.prefix.lib), old_pythonpath]) - # python('-c', 'import pynn_brainscales; print(pynn_brainscales.__file__)') + def install_test(self): + with working_dir('spack-test', create=True): + old_pythonpath = os.environ.get('PYTHONPATH', '') + os.environ['PYTHONPATH'] = ':'.join([str(self.prefix.lib), old_pythonpath]) + python('-c', 'import pynn_brainscales; print(pynn_brainscales.__file__)') + # ignore exit code for now + cmd_true = which("true") + cmd_true() diff --git a/packages/wf-brainscales2-demos/package.py b/packages/wf-brainscales2-demos/package.py index 7f914a9e1121ad663abeedb03ab25dbe46a4c0a4..74a3fcf7b34e5a708317fb452e8d4075cbb7710e 100644 --- a/packages/wf-brainscales2-demos/package.py +++ b/packages/wf-brainscales2-demos/package.py @@ -7,24 +7,50 @@ from spack import * -class WfBrainscales2Demos(BundlePackage): +class WfBrainscales2Demos(Package): """Meta-package to collect all dependencies for the BrainScaleS-2 demos/tutorials.""" - homepage="https://electronicvisions.github.io/documentation-brainscales2/" - - version("23.6") - - depends_on('py-matplotlib@3.5.1:') - depends_on('py-ipywidgets@7.7.0:') - depends_on('py-ipycanvas@0.10.2:') - depends_on('py-numpy@1.21.6:') - depends_on('py-ipython@8.0.1:') - depends_on('py-quantities@0.13.0:') - depends_on('py-torch@1.11.0:') - depends_on('py-torchvision@0.12.0:') - depends_on('py-tqdm@4.62.3:') - depends_on('py-requests@2.26.0:') - depends_on('py-neo@0.11.1:') - depends_on('py-scipy@1.8.1:') - depends_on('py-deap@1.3:') - depends_on('py-pandas@1.4.2:') + homepage="https://electronicvisions.github.io/documentation-brainscales2" + git = "https://github.com/electronicvisions/brainscales2-demos" + maintainer = ["muffgaga"] + + # ECM: we probably should build the ipynb file in this package + version("23.6", branch="jupyter-notebooks-experimental") + + depends_on('hxtorch', type=("run", "test")) + depends_on('pynn-brainscales', type=("run", "test")) + depends_on('py-matplotlib@3.5.1:', type=("run", "test")) + depends_on('py-ipywidgets@7.7.0:', type=("run", "test")) + depends_on('py-ipycanvas@0.10.2:', type=("run", "test")) + depends_on('py-numpy@1.21.6:', type=("run", "test")) + depends_on('py-ipython@8.0.1:', type=("run", "test")) + depends_on('py-quantities@0.13.0:', type=("run", "test")) + depends_on('py-torch@1.11.0:', type=("run", "test")) + depends_on('py-torchvision@0.12.0:', type=("run", "test")) + depends_on('py-tqdm@4.62.3:', type=("run", "test")) + depends_on('py-requests@2.26.0:', type=("run", "test")) + depends_on('py-neo@0.11.1:', type=("run", "test")) + depends_on('py-scipy@1.8.1:', type=("run", "test")) + depends_on('py-deap@1.3:', type=("run", "test")) + depends_on('py-pandas@1.4.2:', type=("run", "test")) + + def install(self, spec, prefix): + # sanity_check_prefix requires something in the install directory + mkdirp(prefix + "/.spack_test_results") + + @run_after("install") + @on_package_attributes(run_tests=True) + def installcheck(self): + cmd_env = which("env") + cmd_env() + # execute notebook and save + jupyter = Executable("jupyter") + jupyter("nbconvert", + "--ExecutePreprocessor.kernel_name=python3", + "--execute", + "--allow-errors", + "--to", + "notebook", + "ts_05-yin_yang.ipynb", + "--output", + prefix+"/.spack_test_results/ts_05-yin_yang.ipynb")