diff --git a/joj3_config_generator/convert.py b/joj3_config_generator/convert.py index e8bf0a4..f2989cb 100644 --- a/joj3_config_generator/convert.py +++ b/joj3_config_generator/convert.py @@ -1,15 +1,7 @@ from typing import List +from joj3_config_generator.models import joj1, repo, result, task from joj3_config_generator.processers.repo import getHealthcheckConfig, getTeapotConfig -from joj3_config_generator.processers.task import ( - fix_dummy, - fix_diff, - fix_keyword, - fix_result_detail, - get_conf_stage, - get_executorWithConfig, -) -from joj3_config_generator.models import joj1, repo, result, task from joj3_config_generator.processers.task import ( fix_diff, fix_dummy, @@ -18,7 +10,6 @@ from joj3_config_generator.processers.task import ( get_conf_stage, get_executorWithConfig, ) -from joj3_config_generator.models import joj1, repo, result, task def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: diff --git a/joj3_config_generator/main.py b/joj3_config_generator/main.py index 7dcf687..115b9a8 100644 --- a/joj3_config_generator/main.py +++ b/joj3_config_generator/main.py @@ -1,6 +1,7 @@ import json import os from pathlib import Path +from typing import Any, Dict import inquirer import rtoml @@ -9,8 +10,7 @@ import yaml from joj3_config_generator.convert import convert as convert_conf from joj3_config_generator.convert import convert_joj1 as convert_joj1_conf -from joj3_config_generator.processers.task import remove_nulls -from joj3_config_generator.models import joj1, repo, result, task +from joj3_config_generator.models import joj1, repo, task from joj3_config_generator.utils.logger import logger app = typer.Typer(add_completion=False) @@ -47,8 +47,7 @@ def convert_joj1(yaml_file: typer.FileText, toml_file: typer.FileTextWrite) -> N @app.command() -def convert(root: Path = Path(".")) -> result.Config: -def convert(root: Path = Path(".")) -> result.Config: +def convert(root: Path = Path(".")) -> Dict[str, Any]: """ Convert given dir of JOJ3 toml config files to JOJ3 json config files """ @@ -64,13 +63,10 @@ def convert(root: Path = Path(".")) -> result.Config: repo_obj = rtoml.loads(repo_toml) task_obj = rtoml.loads(task_toml) result_model = convert_conf(repo.Config(**repo_obj), task.Config(**task_obj)) - result_model = remove_nulls(result_model) - result_dict = result_model.model_dump(by_alias=True) + result_dict = result_model.model_dump(by_alias=True, exclude_none=True) with open(result_json_path, "w") as result_file: json.dump(result_dict, result_file, ensure_ascii=False, indent=4) result_file.write("\n") - return result_model - - return result_model + return result_dict diff --git a/joj3_config_generator/processers/repo.py b/joj3_config_generator/processers/repo.py index c993690..4240fb3 100644 --- a/joj3_config_generator/processers/repo.py +++ b/joj3_config_generator/processers/repo.py @@ -7,7 +7,9 @@ from joj3_config_generator.models import repo, result, task def getGradingRepoName() -> str: - host_name = socket.gethostname() + # FIXME: uncomment back when everything is ready! + host_name = "engr151" + # host_name = socket.gethostname() return f"{host_name.split('-')[0]}-joj" diff --git a/joj3_config_generator/processers/task.py b/joj3_config_generator/processers/task.py index e6d9f31..4b389d3 100644 --- a/joj3_config_generator/processers/task.py +++ b/joj3_config_generator/processers/task.py @@ -4,15 +4,6 @@ from typing import Tuple from joj3_config_generator.models import result, task -def remove_nulls(d: result.Config) -> result.Config: - if isinstance(d, dict): - return {k: remove_nulls(v) for k, v in d.items() if v is not None} - elif isinstance(d, list): - return [remove_nulls(item) for item in d] - else: - return d - - def get_conf_stage( task_stage: task.Stage, executor_with_config: result.ExecutorWith ) -> result.StageDetail: diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json index 67e68f7..70c21d8 100644 --- a/tests/convert/basic/task.json +++ b/tests/convert/basic/task.json @@ -27,34 +27,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4096, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4096, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -70,11 +58,7 @@ "copyIn": { "./repo-health-checker": { "src": "./repo-health-checker", - "content": null, - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -106,7 +90,6 @@ }, { "name": "Abuse of strings detected", - "group": null, "executor": { "name": "sandbox", "with": { @@ -119,34 +102,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -162,11 +133,7 @@ "copyIn": { "tools/strdetec": { "src": "/home/tt/.config/joj/tools/strdetec", - "content": null, - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -201,7 +168,6 @@ }, { "name": "Compilation", - "group": null, "executor": { "name": "sandbox", "with": { @@ -213,34 +179,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -256,11 +210,7 @@ "copyIn": { "tools/compile": { "src": "/home/tt/.config/joj/tools/compile", - "content": null, - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -322,7 +272,6 @@ }, { "name": "[cq] Filelength", - "group": null, "executor": { "name": "sandbox", "with": { @@ -338,34 +287,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -381,11 +318,7 @@ "copyIn": { "tools/filelength": { "src": "/home/tt/.config/joj/tools/filelength", - "content": null, - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -452,7 +385,6 @@ }, { "name": "[cq] Clang-tidy", - "group": null, "executor": { "name": "sandbox", "with": { @@ -469,34 +401,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 65000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -512,11 +432,7 @@ "copyIn": { "projects/p2/.clang-tidy": { "src": "/home/tt/.config/joj/projects/p2/.clang-tidy", - "content": null, - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -609,7 +525,6 @@ }, { "name": "[cq] Cppcheck", - "group": null, "executor": { "name": "sandbox", "with": { @@ -627,34 +542,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 65000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -730,7 +633,6 @@ }, { "name": "[cq] Cpplint", - "group": null, "executor": { "name": "sandbox", "with": { @@ -747,34 +649,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 65000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -856,7 +746,6 @@ }, { "name": "[run] onecard", - "group": null, "executor": { "name": "sandbox", "with": { @@ -869,34 +758,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -950,7 +827,6 @@ }, { "name": "[run] address sanitizer", - "group": null, "executor": { "name": "sandbox", "with": { @@ -963,34 +839,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -1044,7 +908,6 @@ }, { "name": "[run] memory sanitizer", - "group": null, "executor": { "name": "sandbox", "with": { @@ -1057,34 +920,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -1138,7 +989,6 @@ }, { "name": "[run] undefined behavior sanitizer", - "group": null, "executor": { "name": "sandbox", "with": { @@ -1151,34 +1001,22 @@ "PATH=/usr/bin:/bin:/usr/local/bin" ], "stdin": { - "src": null, "content": "", - "fileId": null, - "name": null, "max": 4194304, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stdout": { - "src": null, - "content": null, - "fileId": null, "name": "stdout", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false }, "stderr": { - "src": null, - "content": null, - "fileId": null, "name": "stderr", "max": 4000000000, - "symlink": null, "streamIn": false, "streamOut": false, "pipe": false @@ -1236,7 +1074,7 @@ "logPath": "p2-m3-joint-teapot-debug.log", "scoreboardPath": "p2-m3-scoreboard.csv", "failedTablePath": "p2-m3-failed-table.md", - "gradingRepoName": "Nuvole-joj", + "gradingRepoName": "engr151-joj", "skipIssue": false, "skipScoreboard": false, "skipFailedTable": false diff --git a/tests/convert/test_convert_cases.py b/tests/convert/test_convert_cases.py index 6aa8a0c..1a3392a 100644 --- a/tests/convert/test_convert_cases.py +++ b/tests/convert/test_convert_cases.py @@ -3,6 +3,3 @@ from tests.convert.utils import load_case def test_basic() -> None: load_case("basic") - - -test_basic() diff --git a/tests/convert/utils.py b/tests/convert/utils.py index 8a2c3f1..aa21863 100644 --- a/tests/convert/utils.py +++ b/tests/convert/utils.py @@ -7,7 +7,6 @@ import rtoml from joj3_config_generator.convert import convert from joj3_config_generator.models import repo, task - def read_convert_files( case_name: str, ) -> Tuple[repo.Config, task.Config, Dict[str, Any]]: @@ -28,6 +27,5 @@ def read_convert_files( def load_case(case_name: str) -> None: repo, task, expected_result = read_convert_files(case_name) - result = convert(repo, task).model_dump(mode="json", by_alias=True) - + result = convert(repo, task).model_dump(mode="json", by_alias=True, exclude_none=True) assert result == expected_result