Source code for dash_evals.runner.solvers.extract_code

"""Solver to extract code from markdown responses."""

from inspect_ai.solver import Generate, Solver, TaskState, solver

from dash_evals.utils.markdown import extract_code_from_markdown


[docs] @solver def extract_code(language: str = "dart") -> Solver: """ Extract code from the model's markdown response and store it. This is a pure solver that extracts code and stores it in state.store without any filesystem side effects. Use write_to_sandbox() to write the extracted code to the sandbox. Args: language: The programming language to extract (default: "dart") Returns: A solver that extracts code and stores it in state.store["extracted_code"] """ async def solve(state: TaskState, generate: Generate) -> TaskState: code = state.output.completion extracted = extract_code_from_markdown(code, language=language) # Store in both state.store and state.metadata for compatibility state.store.set("extracted_code", extracted) state.metadata["generated_code"] = extracted return state return solve