chore: more compact code
This commit is contained in:
		
							parent
							
								
									70cee6e55a
								
							
						
					
					
						commit
						919f305729
					
				|  | @ -25,6 +25,8 @@ from joj3_config_generator.lib.task import ( | ||||||
|     fix_diff, |     fix_diff, | ||||||
|     fix_keyword, |     fix_keyword, | ||||||
|     fix_result_detail, |     fix_result_detail, | ||||||
|  |     get_conf_stage, | ||||||
|  |     get_executorWithConfig, | ||||||
| ) | ) | ||||||
| from joj3_config_generator.models import ( | from joj3_config_generator.models import ( | ||||||
|     Cmd, |     Cmd, | ||||||
|  | @ -64,30 +66,11 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | ||||||
|     # Construct healthcheck stage |     # Construct healthcheck stage | ||||||
|     healthcheck_stage = getHealthcheckConfig(repo_conf, task_conf) |     healthcheck_stage = getHealthcheckConfig(repo_conf, task_conf) | ||||||
|     result_conf.stage.stages.append(healthcheck_stage) |     result_conf.stage.stages.append(healthcheck_stage) | ||||||
|     cached = [] |     cached: list[str] = [] | ||||||
|     # 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 = result.ExecutorWith( |         executor_with_config, cached = get_executorWithConfig(task_stage, cached) | ||||||
|             default=result.Cmd( |         conf_stage = get_conf_stage(task_stage, executor_with_config) | ||||||
|                 args=task_stage.command.split(), |  | ||||||
|                 copy_in={ |  | ||||||
|                     file: result.CmdFile(src=file) for file in task_stage.files.import_ |  | ||||||
|                 }, |  | ||||||
|                 copy_out_cached=task_stage.files.export, |  | ||||||
|             ), |  | ||||||
|             cases=[],  # You can add cases if needed |  | ||||||
|         ) |  | ||||||
|         conf_stage = result.StageDetail( |  | ||||||
|             name=task_stage.name, |  | ||||||
|             group=task_conf.task, |  | ||||||
|             executor=result.Executor( |  | ||||||
|                 name="sandbox", |  | ||||||
|                 with_=executor_with_config, |  | ||||||
|             ), |  | ||||||
|             parsers=[ |  | ||||||
|                 result.Parser(name=parser, with_={}) for parser in task_stage.parsers |  | ||||||
|             ], |  | ||||||
|         ) |  | ||||||
|         conf_stage = fix_result_detail(task_stage, conf_stage) |         conf_stage = fix_result_detail(task_stage, conf_stage) | ||||||
|         conf_stage = fix_comment(task_stage, conf_stage) |         conf_stage = fix_comment(task_stage, conf_stage) | ||||||
|         conf_stage = fix_keyword(task_stage, conf_stage) |         conf_stage = fix_keyword(task_stage, conf_stage) | ||||||
|  |  | ||||||
|  | @ -1,10 +1,112 @@ | ||||||
|  | from typing import Tuple | ||||||
|  | 
 | ||||||
| import rtoml | import rtoml | ||||||
| 
 | 
 | ||||||
| from joj3_config_generator.models.result import CmdFile, OptionalCmd | from joj3_config_generator.models import ( | ||||||
|  |     ExecutorConfig, | ||||||
|  |     ExecutorWithConfig, | ||||||
|  |     ParserConfig, | ||||||
|  | ) | ||||||
|  | from joj3_config_generator.models.result import Cmd, CmdFile, OptionalCmd | ||||||
| from joj3_config_generator.models.result import Stage as ResultStage | from joj3_config_generator.models.result import Stage as ResultStage | ||||||
| from joj3_config_generator.models.task import Stage as TaskStage | from joj3_config_generator.models.task import Stage as TaskStage | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def get_conf_stage( | ||||||
|  |     task_stage: TaskStage, executor_with_config: ExecutorWithConfig | ||||||
|  | ) -> ResultStage: | ||||||
|  |     conf_stage = ResultStage( | ||||||
|  |         name=task_stage.name if task_stage.name is not None else "", | ||||||
|  |         # TODO: we may have cq in future | ||||||
|  |         group=( | ||||||
|  |             "joj" | ||||||
|  |             if (task_stage.name is not None) and ("judge" in task_stage.name) | ||||||
|  |             else None | ||||||
|  |         ), | ||||||
|  |         executor=ExecutorConfig( | ||||||
|  |             name="sandbox", | ||||||
|  |             with_=executor_with_config, | ||||||
|  |         ), | ||||||
|  |         parsers=( | ||||||
|  |             [ParserConfig(name=parser, with_={}) for parser in task_stage.parsers] | ||||||
|  |             if task_stage.parsers is not None | ||||||
|  |             else [] | ||||||
|  |         ), | ||||||
|  |     ) | ||||||
|  |     return conf_stage | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def get_executorWithConfig( | ||||||
|  |     task_stage: TaskStage, cached: list[str] | ||||||
|  | ) -> Tuple[ExecutorWithConfig, list[str]]: | ||||||
|  |     file_import = ( | ||||||
|  |         task_stage.files.import_ | ||||||
|  |         if hasattr(task_stage, "files") | ||||||
|  |         and hasattr(task_stage.files, "import_") | ||||||
|  |         and (task_stage.files is not None) | ||||||
|  |         and (task_stage.files.import_ is not None) | ||||||
|  |         else [] | ||||||
|  |     ) | ||||||
|  |     copy_in_files = [file for file in file_import if (file not in cached)] | ||||||
|  |     file_export = ( | ||||||
|  |         task_stage.files.export | ||||||
|  |         if hasattr(task_stage, "files") | ||||||
|  |         and hasattr(task_stage.files, "export") | ||||||
|  |         and (task_stage.files is not None) | ||||||
|  |         else [] | ||||||
|  |     ) | ||||||
|  |     executor_with_config = ExecutorWithConfig( | ||||||
|  |         default=Cmd( | ||||||
|  |             args=(task_stage.command.split() if task_stage.command is not None else []), | ||||||
|  |             copy_in={ | ||||||
|  |                 file: CmdFile(src=f"/home/tt/.config/joj/{file}") | ||||||
|  |                 for file in copy_in_files | ||||||
|  |             }, | ||||||
|  |             copy_in_cached={file: file for file in copy_in_files}, | ||||||
|  |             copy_out_cached=file_export if file_export is not None else [], | ||||||
|  |             cpu_limit=( | ||||||
|  |                 task_stage.limit.cpu * 1_000_000_000 | ||||||
|  |                 if task_stage.limit is not None and task_stage.limit.cpu is not None | ||||||
|  |                 else 4 * 1_000_000_000 | ||||||
|  |             ), | ||||||
|  |             clock_limit=( | ||||||
|  |                 2 * task_stage.limit.cpu * 1_000_000_000 | ||||||
|  |                 if task_stage.limit is not None and task_stage.limit.cpu is not None | ||||||
|  |                 else 8 * 1_000_000_000 | ||||||
|  |             ), | ||||||
|  |             memory_limit=( | ||||||
|  |                 task_stage.limit.mem * 1_024 * 1_024 | ||||||
|  |                 if task_stage.limit is not None and task_stage.limit.mem is not None | ||||||
|  |                 else 4 * 1_024 * 1_024 | ||||||
|  |             ), | ||||||
|  |             stderr=CmdFile( | ||||||
|  |                 name="stderr", | ||||||
|  |                 max=( | ||||||
|  |                     task_stage.limit.stderr * 1_000_000_000 | ||||||
|  |                     if task_stage.limit is not None | ||||||
|  |                     and task_stage.limit.stderr is not None | ||||||
|  |                     else 4 * 1_024 * 1_024 | ||||||
|  |                 ), | ||||||
|  |             ), | ||||||
|  |             stdout=CmdFile( | ||||||
|  |                 name="stdout", | ||||||
|  |                 max=( | ||||||
|  |                     task_stage.limit.stdout * 1_000_000_000 | ||||||
|  |                     if task_stage.limit is not None | ||||||
|  |                     and task_stage.limit.stdout is not None | ||||||
|  |                     else 4 * 1_024 * 1_024 | ||||||
|  |                 ), | ||||||
|  |             ), | ||||||
|  |         ), | ||||||
|  |         cases=[],  # You can add cases if needed | ||||||
|  |     ) | ||||||
|  |     if file_export is not None: | ||||||
|  |         for file in file_export: | ||||||
|  |             if file not in cached: | ||||||
|  |                 cached.append(file) | ||||||
|  |     return (executor_with_config, cached) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def fix_keyword(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: | def fix_keyword(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: | ||||||
|     keyword_parser = ["clangtidy", "keyword", "cppcheck"]  # TODO: may add cpplint |     keyword_parser = ["clangtidy", "keyword", "cppcheck"]  # TODO: may add cpplint | ||||||
|     if task_stage.parsers is not None: |     if task_stage.parsers is not None: | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
|                                 "/<function", |                                 "/<function", | ||||||
|                                 "get_temp_directory", |                                 "get_temp_directory", | ||||||
|                                 "at", |                                 "at", | ||||||
|                                 "0x7f67094f3240>/repo-health-checker", |                                 "0x7fc2485231a0>/repo-health-checker", | ||||||
|                                 "-root=.", |                                 "-root=.", | ||||||
|                                 "-repoSize=50.5", |                                 "-repoSize=50.5", | ||||||
|                                 "-meta=main.py", |                                 "-meta=main.py", | ||||||
|  | @ -71,8 +71,8 @@ | ||||||
|                             "cpuRateLimit": 0, |                             "cpuRateLimit": 0, | ||||||
|                             "cpuSetLimit": "", |                             "cpuSetLimit": "", | ||||||
|                             "copyIn": { |                             "copyIn": { | ||||||
|                                 "//tmp/repo-checker-9gy9931v/repo-health-checker": { |                                 "//tmp/repo-checker-5xkj4dm4/repo-health-checker": { | ||||||
|                                     "src": "//tmp/repo-checker-kjnt9uw0/repo-health-checker", |                                     "src": "//tmp/repo-checker-k3fmck15/repo-health-checker", | ||||||
|                                     "content": null, |                                     "content": null, | ||||||
|                                     "fileId": null, |                                     "fileId": null, | ||||||
|                                     "name": null, |                                     "name": null, | ||||||
|  | @ -136,7 +136,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -147,15 +147,15 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 128000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|                                 "pipe": false |                                 "pipe": false | ||||||
|                             }, |                             }, | ||||||
|                             "cpuLimit": 4000000000, |                             "cpuLimit": 180000000000, | ||||||
|                             "realCpuLimit": 0, |                             "realCpuLimit": 0, | ||||||
|                             "clockLimit": 8000000000, |                             "clockLimit": 360000000000, | ||||||
|                             "memoryLimit": 4194304, |                             "memoryLimit": 4194304, | ||||||
|                             "clockLimit": 8000000000, |                             "clockLimit": 8000000000, | ||||||
|                             "memoryLimit": 4194304, |                             "memoryLimit": 4194304, | ||||||
|  | @ -295,7 +295,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -306,7 +306,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -427,7 +427,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 65000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -438,7 +438,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -618,7 +618,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -629,7 +629,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 65000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -751,7 +751,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 65000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -762,7 +762,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -849,7 +849,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -860,16 +860,16 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|                                 "pipe": false |                                 "pipe": false | ||||||
|                             }, |                             }, | ||||||
|                             "cpuLimit": 4000000000, |                             "cpuLimit": 3000000000, | ||||||
|                             "realCpuLimit": 0, |                             "realCpuLimit": 0, | ||||||
|                             "clockLimit": 8000000000, |                             "clockLimit": 6000000000, | ||||||
|                             "memoryLimit": 4194304, |                             "memoryLimit": 78643200, | ||||||
|                             "stackLimit": 0, |                             "stackLimit": 0, | ||||||
|                             "procLimit": 50, |                             "procLimit": 50, | ||||||
|                             "cpuRateLimit": 0, |                             "cpuRateLimit": 0, | ||||||
|  | @ -1100,7 +1100,7 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stdout", |                                 "name": "stdout", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|  | @ -1111,16 +1111,16 @@ | ||||||
|                                 "content": null, |                                 "content": null, | ||||||
|                                 "fileId": null, |                                 "fileId": null, | ||||||
|                                 "name": "stderr", |                                 "name": "stderr", | ||||||
|                                 "max": 4096, |                                 "max": 4000000000, | ||||||
|                                 "symlink": null, |                                 "symlink": null, | ||||||
|                                 "streamIn": false, |                                 "streamIn": false, | ||||||
|                                 "streamOut": false, |                                 "streamOut": false, | ||||||
|                                 "pipe": false |                                 "pipe": false | ||||||
|                             }, |                             }, | ||||||
|                             "cpuLimit": 4000000000, |                             "cpuLimit": 10000000000, | ||||||
|                             "realCpuLimit": 0, |                             "realCpuLimit": 0, | ||||||
|                             "clockLimit": 8000000000, |                             "clockLimit": 20000000000, | ||||||
|                             "memoryLimit": 4194304, |                             "memoryLimit": 524288000, | ||||||
|                             "stackLimit": 0, |                             "stackLimit": 0, | ||||||
|                             "procLimit": 50, |                             "procLimit": 50, | ||||||
|                             "cpuRateLimit": 0, |                             "cpuRateLimit": 0, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user