| 134 | |
| 135 | |
| 136 | def write_directory(directory: PathLike, data: Iterable[Dict]): |
| 137 | os.makedirs(directory, exist_ok=True) |
| 138 | counters = {} |
| 139 | for sample in data: |
| 140 | assert "solution" in sample, "Samples must come with `solution` field!" |
| 141 | task_id = sample["task_id"].replace("/", "_") |
| 142 | task_dir = os.path.join(directory, task_id) |
| 143 | os.makedirs(task_dir, exist_ok=True) |
| 144 | if task_id not in counters: |
| 145 | counters[task_id] = 0 |
| 146 | sample_id = counters[task_id] |
| 147 | with open(os.path.join(task_dir, f"{sample_id}.py"), "w") as f: |
| 148 | f.write(sample["solution"]) |
| 149 | counters[task_id] += 1 |
| 150 | |
| 151 | |
| 152 | def completeness_check(name, plus): |