Compare commits
2 Commits
b43a25285e
...
ce4605a22a
Author | SHA1 | Date | |
---|---|---|---|
ce4605a22a | |||
6630612915 |
|
@ -1,5 +0,0 @@
|
|||
from joj3_config_generator.models import answer, task
|
||||
|
||||
|
||||
def create(answers: answer.Answers) -> task.Config:
|
||||
return task.Config(task=task.Task(name=answers.name, type_=answers.type_))
|
|
@ -1,16 +1,26 @@
|
|||
import os
|
||||
from typing import Dict
|
||||
|
||||
from joj3_config_generator.models import joj1, repo, result, task
|
||||
from joj3_config_generator.models import answer, joj1, repo, result, task
|
||||
from joj3_config_generator.models.const import CACHE_ROOT, JOJ3_CONFIG_ROOT
|
||||
from joj3_config_generator.processers.repo import (
|
||||
from joj3_config_generator.transformers.repo import (
|
||||
get_health_check_stage,
|
||||
get_teapot_stage,
|
||||
)
|
||||
from joj3_config_generator.processers.task import get_conf_stage
|
||||
from joj3_config_generator.transformers.task import get_conf_stage
|
||||
|
||||
|
||||
def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
||||
# TODO: implement
|
||||
def create_joj3_task_conf(answers: answer.Answers) -> task.Config:
|
||||
return task.Config(task=task.Task(name=answers.name, type_=answers.type_))
|
||||
|
||||
|
||||
# TODO: implement
|
||||
def convert_joj1_conf(joj1_conf: joj1.Config) -> task.Config:
|
||||
return task.Config()
|
||||
|
||||
|
||||
def convert_joj3_conf(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
||||
# Create the base ResultConf object
|
||||
result_conf = result.Config(
|
||||
name=task_conf.task.name,
|
||||
|
@ -35,7 +45,3 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config:
|
|||
result_conf.stage.post_stages.append(get_teapot_stage(repo_conf))
|
||||
|
||||
return result_conf
|
||||
|
||||
|
||||
def convert_joj1(joj1_conf: joj1.Config) -> task.Config:
|
||||
return task.Config()
|
|
@ -1,14 +1,17 @@
|
|||
import json
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
import rtoml
|
||||
import typer
|
||||
from typing_extensions import Annotated
|
||||
|
||||
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.create import create as create_joj3_task_conf
|
||||
from joj3_config_generator.load import (
|
||||
from joj3_config_generator.generator import (
|
||||
convert_joj1_conf,
|
||||
convert_joj3_conf,
|
||||
create_joj3_task_conf,
|
||||
)
|
||||
from joj3_config_generator.loader import (
|
||||
load_joj1_yaml,
|
||||
load_joj3_task_toml_answers,
|
||||
load_joj3_toml,
|
||||
|
@ -20,11 +23,12 @@ app = typer.Typer(add_completion=False)
|
|||
|
||||
|
||||
@app.command()
|
||||
def create(toml_path: Path) -> None:
|
||||
def create(
|
||||
toml_path: Annotated[Optional[Path], typer.Argument()] = None,
|
||||
) -> None:
|
||||
"""
|
||||
Create a new JOJ3 task toml config file
|
||||
"""
|
||||
logger.info(f"Creating task toml file {toml_path}")
|
||||
answers = load_joj3_task_toml_answers()
|
||||
answers_dict = answers.model_dump(mode="json", by_alias=True)
|
||||
logger.debug(f"Got answers: {answers_dict}")
|
||||
|
@ -32,7 +36,13 @@ def create(toml_path: Path) -> None:
|
|||
result_dict = task_model.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True, exclude_unset=True
|
||||
)
|
||||
toml_path.write_text(rtoml.dumps(result_dict))
|
||||
toml_str = rtoml.dumps(result_dict)
|
||||
if toml_path is None:
|
||||
logger.info("Writing task toml to stdout")
|
||||
print(toml_str)
|
||||
else:
|
||||
logger.info(f"Creating task toml file {toml_path}")
|
||||
toml_path.write_text(toml_str)
|
||||
|
||||
|
||||
@app.command()
|
||||
|
@ -70,7 +80,7 @@ def convert(
|
|||
f"Converting {repo_toml_path} & {task_toml_path} to {result_json_path}"
|
||||
)
|
||||
repo_conf, task_conf = load_joj3_toml(root, repo_toml_path, task_toml_path)
|
||||
result_model = convert_conf(repo_conf, task_conf)
|
||||
result_model = convert_joj3_conf(repo_conf, task_conf)
|
||||
result_dict = result_model.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from joj3_config_generator.convert import convert
|
||||
from joj3_config_generator.load import load_joj3_toml
|
||||
from joj3_config_generator.generator import convert_joj3_conf
|
||||
from joj3_config_generator.loader import load_joj3_toml
|
||||
|
||||
|
||||
def load_case(case_name: str) -> None:
|
||||
|
@ -12,7 +12,7 @@ def load_case(case_name: str) -> None:
|
|||
repo_conf, task_conf = load_joj3_toml(root, repo_toml_path, task_toml_path)
|
||||
result_json_path = root / case_name / "task.json"
|
||||
expected_result = json.loads(result_json_path.read_text())
|
||||
result = convert(repo_conf, task_conf).model_dump(
|
||||
result = convert_joj3_conf(repo_conf, task_conf).model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
)
|
||||
assert result == expected_result
|
||||
|
|
|
@ -2,8 +2,8 @@ from pathlib import Path
|
|||
|
||||
import rtoml
|
||||
|
||||
from joj3_config_generator.convert import convert_joj1
|
||||
from joj3_config_generator.load import load_joj1_yaml
|
||||
from joj3_config_generator.generator import convert_joj1_conf
|
||||
from joj3_config_generator.loader import load_joj1_yaml
|
||||
|
||||
|
||||
def load_case(case_name: str) -> None:
|
||||
|
@ -13,7 +13,7 @@ def load_case(case_name: str) -> None:
|
|||
task_toml_path = root / case_name / "task.toml"
|
||||
task_toml = task_toml_path.read_text()
|
||||
expected_result = rtoml.loads(task_toml)
|
||||
result = convert_joj1(task_yaml).model_dump(
|
||||
result = convert_joj1_conf(task_yaml).model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
)
|
||||
assert result == expected_result
|
||||
|
|
|
@ -3,7 +3,7 @@ from pathlib import Path
|
|||
|
||||
import rtoml
|
||||
|
||||
from joj3_config_generator.create import create
|
||||
from joj3_config_generator.generator import create_joj3_task_conf
|
||||
from joj3_config_generator.models import answer
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ def load_case(case_name: str) -> None:
|
|||
answers = answer.Answers(**json.loads(answers_json_path.read_text()))
|
||||
print(answers)
|
||||
expected_result = rtoml.loads(task_toml_path.read_text())
|
||||
result = create(answers).model_dump(
|
||||
result = create_joj3_task_conf(answers).model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True, exclude_unset=True
|
||||
)
|
||||
print(result)
|
||||
|
|
Loading…
Reference in New Issue
Block a user