All checks were successful
build / build (push) Successful in 2m18s
- basic generation of json files - supported parsers: - healthcheck - result-detail - result-status - file - log - dummy - keyword (keyword, clangtidy, cppcheck, cpplint) - diff - `convert` functions is mature, tested in engr151-24fa last two homeworks and engr151-24fa p3 - teapot and healthcheck should be up to date Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn> Reviewed-on: #10 Reviewed-by: Boming Zhang <bomingzh@sjtu.edu.cn> Co-authored-by: jon-lee <jon-lee@sjtu.edu.cn> Co-committed-by: jon-lee <jon-lee@sjtu.edu.cn>
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from pathlib import Path
|
|
from typing import Dict, Tuple
|
|
|
|
import inquirer
|
|
import rtoml
|
|
import yaml
|
|
|
|
from joj3_config_generator.models import joj1, repo, task
|
|
|
|
|
|
def load_joj3_toml_answers() -> Dict[str, str]:
|
|
questions = [
|
|
inquirer.List(
|
|
"size",
|
|
message="What size do you need?",
|
|
choices=["Jumbo", "Large", "Standard", "Medium", "Small", "Micro"],
|
|
),
|
|
]
|
|
answers = inquirer.prompt(questions)
|
|
return answers
|
|
|
|
|
|
def load_joj1_yaml(yaml_path: Path) -> joj1.Config:
|
|
joj1_obj = yaml.safe_load(yaml_path.read_text())
|
|
return joj1.Config(**joj1_obj)
|
|
|
|
|
|
def load_joj3_toml(
|
|
root_path: Path, repo_toml_path: Path, task_toml_path: Path
|
|
) -> Tuple[repo.Config, task.Config]:
|
|
repo_obj = rtoml.loads(repo_toml_path.read_text())
|
|
task_obj = rtoml.loads(task_toml_path.read_text())
|
|
repo_conf = repo.Config(**repo_obj)
|
|
repo_conf.root = root_path
|
|
repo_conf.path = repo_toml_path.relative_to(root_path)
|
|
task_conf = task.Config(**task_obj)
|
|
task_conf.root = root_path
|
|
task_conf.path = task_toml_path.relative_to(root_path)
|
|
return repo_conf, task_conf
|