(
self,
definition: Definition,
workloads: list[Workload],
solution: Solution,
config: BenchmarkConfig,
output_dir: Path,
keep_output_dir: bool = False,
)
| 81 | """Stage files for compilation and execution, returning commands for the CLI.""" |
| 82 | |
| 83 | def __init__( |
| 84 | self, |
| 85 | definition: Definition, |
| 86 | workloads: list[Workload], |
| 87 | solution: Solution, |
| 88 | config: BenchmarkConfig, |
| 89 | output_dir: Path, |
| 90 | keep_output_dir: bool = False, |
| 91 | ): |
| 92 | self.output_dir = output_dir |
| 93 | self.output_dir.mkdir(parents=True, exist_ok=True) |
| 94 | self.keep_output_dir = keep_output_dir |
| 95 | |
| 96 | self.definition = definition |
| 97 | self.workloads = workloads |
| 98 | self.solution = solution |
| 99 | self.config = config |
| 100 | |
| 101 | # Write problem files to staging directory up front. |
| 102 | (self.output_dir / "definition.json").write_text(definition.model_dump_json()) |
| 103 | (self.output_dir / "workload.jsonl").write_text( |
| 104 | "\n".join(w.model_dump_json() for w in workloads) |
| 105 | ) |
| 106 | (self.output_dir / "solution.json").write_text(solution.model_dump_json()) |
| 107 | (self.output_dir / "config.json").write_text( |
| 108 | json.dumps(dataclasses.asdict(config)) |
| 109 | ) |
| 110 | self._write_sources() |
| 111 | |
| 112 | def __del__(self): |
| 113 | if not self.keep_output_dir: |
nothing calls this directly
no test coverage detected