Skip to content

Commit 09cd480

Browse files
committed
Refactored evaluate_muEd by splitting logic into _extract_muEd_submission, _run_muEd_preview, and _run_muEd_evaluation for better modularity and readability.
1 parent 2feac7f commit 09cd480

1 file changed

Lines changed: 27 additions & 14 deletions

File tree

tools/commands.py

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -138,27 +138,25 @@ def evaluate(body: JsonType) -> Response:
138138
return Response(command="eval", result=result)
139139

140140

141-
def evaluate_muEd(body: JsonType) -> List[Dict]:
142-
"""Run the evaluation command for the evaluation function (muEd format).
143-
144-
Args:
145-
body (JsonType): The validated muEd request body.
146-
147-
Returns:
148-
List[Dict]: A list of Feedback items.
149-
"""
141+
def _extract_muEd_submission(body: JsonType):
142+
"""Extract response, params, and content_key from a muEd request body."""
150143
submission = body["submission"]
151144
sub_type = submission.get("type", "MATH")
152145
_type_key = {"MATH": "expression", "TEXT": "text", "CODE": "code", "MODEL": "model"}
153146
content_key = _type_key.get(sub_type, "value")
154-
155147
response = submission.get("content", {}).get(content_key)
156148
params = body.get("configuration", {}).get("params", {})
149+
return response, params, content_key
150+
151+
152+
def _run_muEd_preview(body: JsonType) -> List[Dict]:
153+
response, params, _ = _extract_muEd_submission(body)
154+
preview_result = preview_function(response, params)
155+
return [{"preSubmissionFeedback": preview_result.get("preview", {})}]
157156

158-
pre_sub = body.get("preSubmissionFeedback") or {}
159-
if pre_sub.get("enabled"):
160-
preview_result = preview_function(response, params)
161-
return [{"preSubmissionFeedback": preview_result.get("preview", {})}]
157+
158+
def _run_muEd_evaluation(body: JsonType) -> List[Dict]:
159+
response, params, content_key = _extract_muEd_submission(body)
162160

163161
task = body.get("task")
164162
if task:
@@ -183,6 +181,21 @@ def evaluate_muEd(body: JsonType) -> List[Dict]:
183181
return [feedback_item]
184182

185183

184+
def evaluate_muEd(body: JsonType) -> List[Dict]:
185+
"""Run the evaluation command for the evaluation function (muEd format).
186+
187+
Args:
188+
body (JsonType): The validated muEd request body.
189+
190+
Returns:
191+
List[Dict]: A list of Feedback items.
192+
"""
193+
pre_sub = body.get("preSubmissionFeedback") or {}
194+
if pre_sub.get("enabled"):
195+
return _run_muEd_preview(body)
196+
return _run_muEd_evaluation(body)
197+
198+
186199
def get_case_feedback(
187200
response: Any,
188201
params: Dict,

0 commit comments

Comments
 (0)