dev #10
|
@ -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:
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import json
|
||||
jon-lee marked this conversation as resolved
|
||||
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
|
||||
|
|
|
@ -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!
|
||||
jon-lee marked this conversation as resolved
Outdated
张泊明518370910136
commented
make it a field in repo.toml, if it is unset, then use make it a field in repo.toml, if it is unset, then use `socket.gethostname`. We set this value to pass the test.
李衍志523370910113
commented
resolved. resolved.
|
||||
host_name = "engr151"
|
||||
# host_name = socket.gethostname()
|
||||
return f"{host_name.split('-')[0]}-joj"
|
||||
|
||||
|
||||
|
|
|
@ -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:
|
||||
jon-lee marked this conversation as resolved
Outdated
张泊明518370910136
commented
`ParserEnum`
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -3,6 +3,3 @@ from tests.convert.utils import load_case
|
|||
|
||||
def test_basic() -> None:
|
||||
load_case("basic")
|
||||
|
||||
|
||||
test_basic()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user
this file should not be changed