All exercises, problems, and projects in a document are parsed and available in a data structure (list of dicts) for further processing (e.g., making a book of problems).
[{'answer': '',
'closing_remarks': '',
'file': ['flip_coin.py', 'flip_coin.pdf'],
'hints': [],
'keywords': ['random numbers', 'Monte Carlo simulation'],
'label': 'demo:ex:1',
'solution_file': ['mysol.txt', 'mysol_flip_coin.py'],
'subex': [{'answer': '',
'file': None,
'hints': ['Use `r = random.random()` ...'],
'solution': '',
'text': 'Make a program that simulates ...'},],
'title': 'Flip a Coin',
'type': 'Problem'}]