Spaces:
Runtime error
Runtime error
| import csv | |
| import json | |
| from pathlib import Path | |
| from typing import Dict | |
| from itertools import product | |
| REPORTS_DIR = "test_reports" | |
| class ValidationMatrix: | |
| os = ("ubuntu-20.04", "ubuntu-22.04", "windows-2019", "macos-12") | |
| python = ("3.8", "3.9", "3.10") | |
| def values(cls): | |
| return product(cls.os, cls.python) | |
| def get_report_file_path(os: str, python: str) -> Path: | |
| return Path(REPORTS_DIR) / f"{os}-{python}" / "test_report.csv" | |
| def get_default_status_dict(notebook_name: str) -> Dict: | |
| default_status = None | |
| def _get_python_status_dict(): | |
| return dict((python, default_status) for python in ValidationMatrix.python) | |
| return { | |
| "name": notebook_name, | |
| "status": dict((os, _get_python_status_dict()) for os in ValidationMatrix.os), | |
| } | |
| def write_json_file(filename: str, data: Dict): | |
| with open(filename, "w") as file: | |
| json.dump(data, file, indent=2) | |
| def main(): | |
| NOTEBOOKS_STATUS_MAP = {} | |
| for os, python in ValidationMatrix.values(): | |
| report_file_path = get_report_file_path(os, python) | |
| if not report_file_path.exists(): | |
| print(f'Report file "{report_file_path}" does not exists.') | |
| continue | |
| print(f'Processing report file "{report_file_path}".') | |
| with open(report_file_path, "r") as report_file: | |
| for row in csv.DictReader(report_file): | |
| name = row["name"] | |
| status = row["status"] | |
| if name not in NOTEBOOKS_STATUS_MAP: | |
| NOTEBOOKS_STATUS_MAP[name] = get_default_status_dict(name) | |
| NOTEBOOKS_STATUS_MAP[name]["status"][os][python] = status | |
| write_json_file(Path(REPORTS_DIR) / "notebooks-status-map.json", NOTEBOOKS_STATUS_MAP) | |
| if __name__ == "__main__": | |
| main() | |