-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSConscript
69 lines (63 loc) · 2.37 KB
/
SConscript
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
Import('env')
# A simple wrapper that invokes a Python script, passing an input file (-i) and
# an output filename (-o). Intended to do some transformation on a CSV file,
# like adding additional data / reformatting.
def Annotator(env, target, source, scripts):
intermediate_target = source
for i, script in enumerate(scripts):
env = env.Clone()
env['ANNOTATOR_SCRIPT'] = File(script)
if i == len(scripts) - 1:
new_target = target
else:
new_target = '%s_%s' % (target, i)
env.Command(new_target, intermediate_target,
"$PYTHON $ANNOTATOR_SCRIPT -i $SOURCE -o $TARGET")
env.Depends(new_target, File(script))
env.Depends(new_target, File('labelannotator.py'))
intermediate_target = new_target
return File(new_target)
env.AddMethod(Annotator)
# A labelmaker invocation, taking in the source CSV dataset and SVG template and
# generating a (set of) SVG labels.
def Labels(env, target, source_template, source_config, source_csv):
env = env.Clone()
env['LABELS_TEMPLATE'] = File(source_template)
env['LABELS_CONFIG'] = File(source_config)
env.Command(target, source_csv,
'$PYTHON labelmaker/labelmaker.py $LABELS_TEMPLATE $LABELS_CONFIG $SOURCE $TARGET')
env.Depends(target, File(source_template))
env.Depends(target, File(source_config))
env.Depends(target, Glob('labelmaker/*.py'))
return File(target)
env.AddMethod(Labels)
resistors_csv = env.Annotator('resistors_3x_color.csv',
'data/resistors_3x.csv',
['ResistorsColor.py'])
resistors_labels = env.Labels('resistors_drawers.svg',
'templates/template_resistors_3x.svg',
'templates/template_front.ini',
resistors_csv)
parts_csv = env.Annotator('parts_data.csv',
'data/all_parts.csv',
['DigikeyCrawler.py',
'DigikeyLabelGen.py',
'SupernodeAnnotator.py'])
parts_drawers_csv = env.Annotator('parts_drawers_data.csv',
parts_csv,
['DrawersFilter.py'])
#parts_labels_csv = env.Annotator('parts_labels_data.csv',
# parts_csv,
# ['LabelsFilter.py'])
parts_drawer_labels = env.Labels('parts_drawers.svg',
'templates/template_parts_single.svg',
'templates/template_front.ini',
parts_drawers_csv)
parts_new_csv = env.Annotator('parts_labels_data.csv',
'data/all_new_parts.csv',
['DigikeyCrawler.py',
'DigikeyLabelGen.py',
'SupernodeAnnotator.py'])
#parts_labels_csv = env.Annotator('parts_labels_data.csv',
# parts_new_csv,
# ['LabelsFilter.py'])