(item, answer, autoformalization, thread)
| 175 | return results |
| 176 | |
| 177 | def process_answer(item, answer, autoformalization, thread): |
| 178 | answer = answer.split("```")[0] |
| 179 | try: |
| 180 | outcome = thread.submit_and_receive({"cmd": autoformalization + answer, "env": 0}) |
| 181 | if outcome is None: |
| 182 | return answer, False |
| 183 | |
| 184 | # Check for errors or incomplete content in the result |
| 185 | if "messages" in outcome: |
| 186 | is_error = False |
| 187 | is_sorries = False |
| 188 | for i in range(len(outcome["messages"])): |
| 189 | if outcome["messages"][i]["severity"] == "error": |
| 190 | is_error = True |
| 191 | elif outcome["messages"][i]["severity"] == "sorries" or 'sorries' in outcome.keys(): |
| 192 | is_sorries = True |
| 193 | if is_error or is_sorries: |
| 194 | return answer, False |
| 195 | else: |
| 196 | return answer, True |
| 197 | return answer, True |
| 198 | except Exception as e: |
| 199 | print(f"Error in process_answer: {e}") |
| 200 | return answer, False |
| 201 | |
| 202 | # Load existing progress (if available) |
| 203 | def load_progress_from_file(filepath): |
no test coverage detected