@@ -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+
186199def get_case_feedback (
187200 response : Any ,
188201 params : Dict ,
0 commit comments