Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
This commit is contained in:
		
						commit
						b7b7a93677
					
				|  | @ -4,18 +4,10 @@ from typing import Set | ||||||
| from joj3_config_generator.models import joj1, repo, result, task | from joj3_config_generator.models import joj1, repo, result, task | ||||||
| from joj3_config_generator.models.const import CACHE_ROOT, JOJ3_CONFIG_ROOT | from joj3_config_generator.models.const import CACHE_ROOT, JOJ3_CONFIG_ROOT | ||||||
| from joj3_config_generator.processers.repo import ( | from joj3_config_generator.processers.repo import ( | ||||||
|     get_health_check_config, |     get_health_check_stage, | ||||||
|     get_teapot_stage, |     get_teapot_stage, | ||||||
| ) | ) | ||||||
| from joj3_config_generator.processers.task import ( | from joj3_config_generator.processers.task import get_conf_stage | ||||||
|     fix_diff, |  | ||||||
|     fix_dummy, |  | ||||||
|     fix_file, |  | ||||||
|     fix_keyword, |  | ||||||
|     fix_result_detail, |  | ||||||
|     get_conf_stage, |  | ||||||
|     get_executor_with_config, |  | ||||||
| ) |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | ||||||
|  | @ -34,18 +26,11 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | ||||||
|     current_test = os.environ.get("PYTEST_CURRENT_TEST") is not None |     current_test = os.environ.get("PYTEST_CURRENT_TEST") is not None | ||||||
|     # Construct health check stage |     # Construct health check stage | ||||||
|     if not repo_conf.force_skip_health_check_on_test or not current_test: |     if not repo_conf.force_skip_health_check_on_test or not current_test: | ||||||
|         result_conf.stage.stages.append(get_health_check_config(repo_conf)) |         result_conf.stage.stages.append(get_health_check_stage(repo_conf)) | ||||||
|     cached: Set[str] = set() |     cached: Set[str] = set() | ||||||
|     # Convert each stage in the task configuration |     # Convert each stage in the task configuration | ||||||
|     for task_stage in task_conf.stages: |     for task_stage in task_conf.stages: | ||||||
|         executor_with_config = get_executor_with_config(task_stage, cached) |         result_conf.stage.stages.append(get_conf_stage(task_conf, task_stage, cached)) | ||||||
|         conf_stage = get_conf_stage(task_stage, executor_with_config) |  | ||||||
|         conf_stage = fix_result_detail(task_stage, conf_stage) |  | ||||||
|         conf_stage = fix_dummy(task_stage, conf_stage) |  | ||||||
|         conf_stage = fix_keyword(task_stage, conf_stage) |  | ||||||
|         conf_stage = fix_file(task_stage, conf_stage) |  | ||||||
|         conf_stage = fix_diff(task_stage, conf_stage, task_conf) |  | ||||||
|         result_conf.stage.stages.append(conf_stage) |  | ||||||
|     if not repo_conf.force_skip_teapot_on_test or not current_test: |     if not repo_conf.force_skip_teapot_on_test or not current_test: | ||||||
|         result_conf.stage.post_stages.append(get_teapot_stage(repo_conf)) |         result_conf.stage.post_stages.append(get_teapot_stage(repo_conf)) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -67,7 +67,7 @@ def get_teapot_check_args(repo_conf: repo.Config) -> List[str]: | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_health_check_config(repo_conf: repo.Config) -> result.StageDetail: | def get_health_check_stage(repo_conf: repo.Config) -> result.StageDetail: | ||||||
|     health_check_stage = result.StageDetail( |     health_check_stage = result.StageDetail( | ||||||
|         name="Health Check", |         name="Health Check", | ||||||
|         group="", |         group="", | ||||||
|  |  | ||||||
|  | @ -7,7 +7,9 @@ from joj3_config_generator.models.const import JOJ3_CONFIG_ROOT | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_conf_stage( | def get_conf_stage( | ||||||
|     task_stage: task.Stage, executor_with_config: result.ExecutorWith |     task_conf: task.Config, | ||||||
|  |     task_stage: task.Stage, | ||||||
|  |     cached: Set[str], | ||||||
| ) -> result.StageDetail: | ) -> result.StageDetail: | ||||||
|     conf_stage = result.StageDetail( |     conf_stage = result.StageDetail( | ||||||
|         name=task_stage.name, |         name=task_stage.name, | ||||||
|  | @ -20,7 +22,7 @@ def get_conf_stage( | ||||||
|         ), |         ), | ||||||
|         executor=result.Executor( |         executor=result.Executor( | ||||||
|             name="sandbox", |             name="sandbox", | ||||||
|             with_=executor_with_config, |             with_=get_executor_with(task_stage, cached), | ||||||
|         ), |         ), | ||||||
|         parsers=( |         parsers=( | ||||||
|             [ |             [ | ||||||
|  | @ -29,12 +31,15 @@ def get_conf_stage( | ||||||
|             ] |             ] | ||||||
|         ), |         ), | ||||||
|     ) |     ) | ||||||
|  |     fix_result_detail(task_stage, conf_stage) | ||||||
|  |     fix_dummy(task_stage, conf_stage) | ||||||
|  |     fix_keyword(task_stage, conf_stage) | ||||||
|  |     fix_file(task_stage, conf_stage) | ||||||
|  |     fix_diff(task_stage, task_conf, conf_stage) | ||||||
|     return conf_stage |     return conf_stage | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_executor_with_config( | def get_executor_with(task_stage: task.Stage, cached: Set[str]) -> result.ExecutorWith: | ||||||
|     task_stage: task.Stage, cached: Set[str] |  | ||||||
| ) -> result.ExecutorWith: |  | ||||||
|     file_import = task_stage.files.import_ |     file_import = task_stage.files.import_ | ||||||
|     copy_in_files = [file for file in file_import if file not in cached] |     copy_in_files = [file for file in file_import if file not in cached] | ||||||
|     file_export = task_stage.files.export |     file_export = task_stage.files.export | ||||||
|  | @ -97,11 +102,9 @@ def fix_keyword( | ||||||
|     return conf_stage |     return conf_stage | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def fix_result_detail( | def fix_result_detail(task_stage: task.Stage, conf_stage: result.StageDetail) -> None: | ||||||
|     task_stage: task.Stage, conf_stage: result.StageDetail |  | ||||||
| ) -> result.StageDetail: |  | ||||||
|     if "result-detail" not in task_stage.parsers: |     if "result-detail" not in task_stage.parsers: | ||||||
|         return conf_stage |         return | ||||||
|     result_detail_parser = next( |     result_detail_parser = next( | ||||||
|         p for p in conf_stage.parsers if p.name == "result-detail" |         p for p in conf_stage.parsers if p.name == "result-detail" | ||||||
|     ) |     ) | ||||||
|  | @ -121,12 +124,8 @@ def fix_result_detail( | ||||||
|         ).model_dump(by_alias=True) |         ).model_dump(by_alias=True) | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|     return conf_stage |  | ||||||
| 
 | 
 | ||||||
| 
 | def fix_dummy(task_stage: task.Stage, conf_stage: result.StageDetail) -> None: | ||||||
| def fix_dummy( |  | ||||||
|     task_stage: task.Stage, conf_stage: result.StageDetail |  | ||||||
| ) -> result.StageDetail: |  | ||||||
|     dummy_parser = [ |     dummy_parser = [ | ||||||
|         "dummy", |         "dummy", | ||||||
|         "result-status", |         "result-status", | ||||||
|  | @ -146,28 +145,25 @@ def fix_dummy( | ||||||
|                 force_quit_on_not_accepted=task_stage.result_status.force_quit, |                 force_quit_on_not_accepted=task_stage.result_status.force_quit, | ||||||
|             ).model_dump(by_alias=True) |             ).model_dump(by_alias=True) | ||||||
|         ) |         ) | ||||||
|     return conf_stage |     return | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def fix_file( | def fix_file(task_stage: task.Stage, conf_stage: result.StageDetail) -> None: | ||||||
|     task_stage: task.Stage, conf_stage: result.StageDetail |  | ||||||
| ) -> result.StageDetail: |  | ||||||
|     file_parser = ["file"] |     file_parser = ["file"] | ||||||
|     for parser in task_stage.parsers: |     for parser in task_stage.parsers: | ||||||
|         if parser not in file_parser: |         if parser not in file_parser: | ||||||
|             continue |             continue | ||||||
|         file_parser_ = next(p for p in conf_stage.parsers if p.name == parser) |         file_parser_ = next(p for p in conf_stage.parsers if p.name == parser) | ||||||
|         file_parser_.with_.update({"name": task_stage.file.name}) |         file_parser_.with_.update({"name": task_stage.file.name}) | ||||||
|     return conf_stage |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def fix_diff( | def fix_diff( | ||||||
|     task_stage: task.Stage, |     task_stage: task.Stage, | ||||||
|     conf_stage: result.StageDetail, |  | ||||||
|     task_conf: task.Config, |     task_conf: task.Config, | ||||||
| ) -> result.StageDetail: |     conf_stage: result.StageDetail, | ||||||
|  | ) -> None: | ||||||
|     if "diff" not in task_stage.parsers: |     if "diff" not in task_stage.parsers: | ||||||
|         return conf_stage |         return | ||||||
|     diff_parser = next((p for p in conf_stage.parsers if p.name == "diff"), None) |     diff_parser = next((p for p in conf_stage.parsers if p.name == "diff"), None) | ||||||
|     skip = task_stage.skip |     skip = task_stage.skip | ||||||
|     cases = task_stage.cases |     cases = task_stage.cases | ||||||
|  | @ -229,4 +225,4 @@ def fix_diff( | ||||||
|         diff_parser.with_.update({"name": "diff", "cases": parser_cases}) |         diff_parser.with_.update({"name": "diff", "cases": parser_cases}) | ||||||
|         conf_stage.executor.with_.cases = stage_cases |         conf_stage.executor.with_.cases = stage_cases | ||||||
| 
 | 
 | ||||||
|     return conf_stage |     return | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user