Remove question numbers from spec file
Current
[question.1]
pages = [3]
mark = 5
[questions.2]
pages = [3, 4]
marks = 6
label = "Ex2"
Proposed
totalMarks = 24
[[questions]]
pages = [ 3,]
marks = 5
[[questions]]
pages = [ 4, 5,]
marks = 6
label = "Ex2"
[[questions]]
type = "multipart"
pages = [ 6,]
num_parts = 3
part_marks = 2
marks = 6
[[questions]]
type = "multipart"
pages = [ 7, 8,]
num_parts = 3
part_marks = [ 1, 4, 2,]
marks = 7
equivalent JSON
{
"totalMarks": 24,
"questions": [
{
"pages": [3],
"marks": 5
},
{
"pages": [4, 5],
"marks": 6,
"label": "Ex2"
},
{
"type": "multipart",
"pages": [6],
"num_parts": 3,
"part_marks": 2,
"marks": 6
},
{
"type": "multipart",
"pages": [7, 8],
"num_parts": 3,
"part_marks": [1, 4, 2],
"marks": 7
}
]
}
example code:
import json
import toml
# type: can be "single" or "multipart" and is "single" if omitted
questions = [
{"pages": [3], "marks": 5},
{"pages": [4, 5], "marks": 6, "label": "Ex2"},
{"type": "multipart", "pages": [6], "num_parts": 3, "part_marks": 2, "marks": 6},
{"type": "multipart", "pages": [7, 8], "num_parts": 3, "part_marks": [1, 4, 2], "marks": 7},
]
toplevel = {"totalMarks": 24, "questions": questions}
with open("foo.toml", "w") as f:
toml.dump(toplevel, f)
with open("foo.json", "w") as f:
json.dump(toplevel, f, indent=" ")
Auto-generated internal structure:
flat = [
{"pages": [3], "marks": 5, "label": "Q1"},
{"pages": [4, 5], "marks": 6, "label": "Ex2"},
{"pages": [6], "marks": 2, "label": "Q3(a)"},
{"pages": [6], "marks": 2, "label": "Q3(b)"},
{"pages": [6], "marks": 2, "label": "Q3(c)"},
{"pages": [7, 8], "marks": 1, "label": "Q4(a)"},
{"pages": [7, 8], "marks": 4, "label": "Q4(b)"},
{"pages": [7, 8], "marks": 2, "label": "Q4(c)"},
]
Edited by Colin Macdonald