-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.py
91 lines (75 loc) · 2.66 KB
/
main.py
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
90
91
import os
import yaml
from mako.template import Template
from mako.lookup import TemplateLookup
from question_groups import admin, executif, promo, finissante
from models.survey import Survey
from config import validate_config, fill_placehoders
stream = open("config.yaml", 'r')
config = yaml.safe_load(stream)
validate_config(config)
fill_placehoders(config)
print(f"JOB START ! Starting generation for {config['type']}!")
groups = []
questions = []
sousquestions = []
for group in config['groups']:
if group['type'] == "exec":
group, question = executif.generate_questions(config, group)
groups.append(group)
questions.extend(question)
elif group['type'] == "admin":
group, question, sousquestion = admin.generate_questions(group)
groups.append(group)
questions.append(question)
sousquestions.extend(sousquestion)
elif group['type'] == "promo":
group, question = promo.generate_questions(config, group)
groups.append(group)
questions.extend(question)
elif group['type'] == "finissante":
group, question = finissante.generate_questions(config,group)
groups.extend(group)
questions.extend(question)
else:
print("invalid conf type, exiting")
exit() # TODO discard conf?
survey_options = Survey(config)
mylookup = TemplateLookup(directories=['.'], input_encoding="utf-8", output_encoding="utf-8")
mytemplate = Template(filename='templates/base.mako', lookup=mylookup, input_encoding="utf-8", output_encoding="utf-8")
output_file = ""
survey = ""
if config['type'] == "l'AGEG":
survey = mytemplate.render(
survey_options=survey_options,
groups=groups,
questions=questions,
subquestions=sousquestions,
withAttributes=False
)
output_file = "ageg-survey-test.lss"
elif config['type'].startswith("la promotion"):
survey = mytemplate.render(
survey_options=survey_options,
groups=groups,
questions=questions,
subquestions=None,
withAttributes=False
)
output_file = "promo-survey.lss"
elif config['type'] == "la finissante":
survey = mytemplate.render(
survey_options=survey_options,
groups=groups,
questions=questions,
subquestions=None,
withAttributes=True
)
output_file = "finissante-survey.lss"
else:
print("Config type unknown (This should never print because validation should have catch error before)")
exit() # should never happen
survey_file = open(f"output/{output_file}", "w+b")
survey_file.write(survey)
survey_file.close()
print(f"JOB DONE ! You can find your result in output/{output_file}")