forked from olearydj/qti-convert
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added parser modules for different question types.
- Loading branch information
Showing
8 changed files
with
144 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import question_type |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
""" | ||
Question Types | ||
""" | ||
|
||
from . import multiple_answers | ||
from . import multiple_choice | ||
from . import true_false | ||
from . import short_answer | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
""" | ||
Multiple Answers | ||
""" | ||
|
||
from lxml import etree | ||
from logzero import logger | ||
|
||
def get_answers(xml): | ||
""" Return an array of possible answers """ | ||
answers = [] | ||
correct_answers = [] | ||
|
||
for id in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}conditionvar/{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}and/{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}varequal"): | ||
correct_answers.append(id.text) | ||
|
||
try: | ||
for xml_answer_item in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}response_label"): | ||
answers.append( | ||
{ | ||
'id': xml_answer_item.get("ident"), | ||
'text': xml_answer_item.find("{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}material/{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}mattext").text, | ||
'correct': True if xml_answer_item.get("ident") in correct_answers else False | ||
} | ||
) | ||
except OSError as e: | ||
logger.error("%s", e) | ||
except etree.ParseError as e: | ||
logger.error("XML parser error: %s", e) | ||
return answers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
""" | ||
Multiple Choice | ||
""" | ||
|
||
from lxml import etree | ||
from logzero import logger | ||
|
||
def get_answers(xml): | ||
""" Return an array of possible answers """ | ||
answers = [] | ||
correct_answers = [] | ||
|
||
for id in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}varequal"): | ||
correct_answers.append(id.text) | ||
|
||
try: | ||
for xml_answer_item in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}response_label"): | ||
answers.append( | ||
{ | ||
'id': xml_answer_item.get("ident"), | ||
'text': xml_answer_item.find("{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}material/{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}mattext").text, | ||
'correct': True if xml_answer_item.get("ident") in correct_answers else False | ||
} | ||
) | ||
except OSError as e: | ||
logger.error("%s", e) | ||
except etree.ParseError as e: | ||
logger.error("XML parser error: %s", e) | ||
return answers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
""" | ||
Short Answer | ||
""" | ||
|
||
from lxml import etree | ||
from logzero import logger | ||
|
||
def get_answers(xml): | ||
""" Return an array of possible answers """ | ||
answers = [] | ||
i = 0 | ||
|
||
try: | ||
for xml_answer_item in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}varequal"): | ||
i += 1 | ||
answers.append( | ||
{ | ||
'id': str(i), | ||
'text': xml_answer_item.text, | ||
'correct': True | ||
} | ||
) | ||
except OSError as e: | ||
logger.error("%s", e) | ||
except etree.ParseError as e: | ||
logger.error("XML parser error: %s", e) | ||
return answers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
""" | ||
True or False | ||
""" | ||
|
||
from lxml import etree | ||
from logzero import logger | ||
|
||
def get_answers(xml): | ||
""" Return an array of possible answers """ | ||
answers = [] | ||
correct_answers = [] | ||
|
||
for id in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}varequal"): | ||
correct_answers.append(id.text) | ||
|
||
try: | ||
for xml_answer_item in xml.findall(".//{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}response_label"): | ||
answers.append( | ||
{ | ||
'id': xml_answer_item.get("ident"), | ||
'text': xml_answer_item.find("{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}material/{http://www.imsglobal.org/xsd/ims_qtiasiv1p2}mattext").text, | ||
'correct': True if xml_answer_item.get("ident") in correct_answers else False | ||
} | ||
) | ||
except OSError as e: | ||
logger.error("%s", e) | ||
except etree.ParseError as e: | ||
logger.error("XML parser error: %s", e) | ||
return answers |