-
Notifications
You must be signed in to change notification settings - Fork 0
/
wscript
89 lines (71 loc) · 2.68 KB
/
wscript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import os
from waflib.extras.test_base import summary
from waflib.extras.symwaf2ic import get_toplevel_path
def depends(dep):
dep('haldls')
dep("pynn-brainscales")
dep("hxtorch")
dep("libnux")
dep('code-format')
def options(opt):
opt.load("test_base")
opt.load("shelltest")
opt.load('pylint')
opt.load('pycodestyle')
hopts = opt.add_option_group('demos options')
hopts.add_withoption('solution', default=False,
help = 'Build sphinx with "Solution" tag')
hopts.add_withoption('latex', default=True, help = 'Build PDF.')
def configure(conf):
conf.load("test_base")
conf.load("shelltest")
conf.load('pylint')
conf.load('pycodestyle')
def build(bld):
bld.env.BBS_HARDWARE_AVAILABLE = "SLURM_HWDB_YAML" in os.environ
srcdir = bld.path.find_dir('.').get_src()
blddir = bld.path.find_dir('.').get_bld()
testdir = blddir.find_or_declare('test')
sphinxbuild = "python -m sphinx"
# Code style
bld(name='much-demos-such-wow-static-code-analysis',
features='use py pylint pycodestyle',
source=bld.path.ant_glob('**/*.py'),
use="pynn_brainscales2 dlens_vx_v3",
pylint_config=os.path.join(get_toplevel_path(), "code-format", "pylintrc"),
pycodestyle_config=os.path.join(get_toplevel_path(), "code-format", "pycodestyle"),
test_timeout=60
)
# Add Tags to sphinx build (e.g. for solution)
tags = ""
if bld.options.with_solution:
tags += "-t Solution"
# Build jupyter
bld(name='doc-much-demos-such-wow-jupyter',
rule=f'{sphinxbuild} -M jupyter {srcdir} {blddir}/jupyter -E {tags}',
always=True)
bld(name='doc-much-demos-such-wow-jupyter-test',
rule=(f'{sphinxbuild} -M jupyter {srcdir} {testdir} '
+ '-D jupyter_drop_tests=0 -t exclude_nmpi -t Solution'),
always=True)
# Build HTML
bld(name='doc-much-demos-such-wow-html',
rule=f'{sphinxbuild} -M html {srcdir} {blddir}/html -E {tags} -W',
always=True)
# Build PDF
if bld.options.with_latex:
bld(name='doc-much-demos-such-wow-pdf',
rule=f'{sphinxbuild} -M latexpdf {srcdir} {blddir}/latex -E {tags}',
always=False)
# HW test
bld(
target='doc-much-demos-such-wow_ipynb_executability_tests',
tests=bld.path.ant_glob('tests/py/*.py'),
features='use pytest',
use=['doc-much-demos-such-wow-jupyter-test', 'pynn_brainscales2', 'hxtorch'],
install_path='${PREFIX}/bin/tests/py',
test_environ=dict(BLD_DIR=str(testdir)),
test_timeout=1000,
skip_run=not bld.env.BBS_HARDWARE_AVAILABLE,
)
bld.add_post_fun(summary)