fix: result_detail parser
This commit is contained in:
		
							parent
							
								
									5eff9fca75
								
							
						
					
					
						commit
						3f8a6e9066
					
				|  | @ -1,5 +1,5 @@ | |||
| from joj3_config_generator.lib.repo import getHealthcheckConfig, getTeapotConfig | ||||
| from joj3_config_generator.lib.task import fix_comment, fix_keyword | ||||
| from joj3_config_generator.lib.task import fix_comment, fix_keyword, fix_result_detail | ||||
| from joj3_config_generator.models import ( | ||||
|     Cmd, | ||||
|     CmdFile, | ||||
|  | @ -82,16 +82,10 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: | |||
|                 ParserConfig(name=parser, with_={}) for parser in task_stage.parsers | ||||
|             ], | ||||
|         ) | ||||
|         # TODO: fix all parser here | ||||
|         if "result-detail" in task_stage.parsers: | ||||
|             result_detail_parser = next( | ||||
|                 p for p in conf_stage.parsers if p.name == "result-detail" | ||||
|             ) | ||||
|             if task_stage.result_detail is not None: | ||||
|                 result_detail_parser.with_.update(task_stage.result_detail) | ||||
| 
 | ||||
|         conf_stage = fix_result_detail(task_stage, conf_stage) | ||||
|         conf_stage = fix_comment(task_stage, conf_stage) | ||||
|         conf_stage = fix_keyword(task_stage, conf_stage) | ||||
|         # TODO: fix diff parser here | ||||
| 
 | ||||
|         result_conf.stage.stages.append(conf_stage) | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,6 +20,37 @@ def fix_keyword(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: | |||
|     return conf_stage | ||||
| 
 | ||||
| 
 | ||||
| def fix_result_detail(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: | ||||
|     if "result-detail" in task_stage.parsers: | ||||
|         result_detail_parser = next( | ||||
|             p for p in conf_stage.parsers if p.name == "result-detail" | ||||
|         ) | ||||
|         if task_stage.result_detail is not None: | ||||
|             show_files = [] | ||||
|             if ( | ||||
|                 task_stage.result_detail.stdout | ||||
|                 and task_stage.result_detail.stdout is not None | ||||
|             ): | ||||
|                 show_files.append("stdout") | ||||
|             if ( | ||||
|                 task_stage.result_detail.stderr | ||||
|                 and task_stage.result_detail.stderr is not None | ||||
|             ): | ||||
|                 show_files.append("stderr") | ||||
|             result_detail_parser.with_.update( | ||||
|                 { | ||||
|                     "score": 0, | ||||
|                     "comment": "", | ||||
|                     "showFiles": show_files, | ||||
|                     "showExitStatus": task_stage.result_detail.exitstatus, | ||||
|                     "showRuntime": task_stage.result_detail.time, | ||||
|                     "showMemory": task_stage.result_detail.mem, | ||||
|                 } | ||||
|             ) | ||||
| 
 | ||||
|     return conf_stage | ||||
| 
 | ||||
| 
 | ||||
| def fix_comment(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: | ||||
|     comment_parser = [ | ||||
|         "dummy", | ||||
|  |  | |||
|  | @ -46,7 +46,9 @@ class Stage(BaseModel): | |||
|     keyword: Optional[ParserKeyword] = ParserKeyword() | ||||
|     clangtidy: Optional[ParserKeyword] = ParserKeyword() | ||||
|     cppcheck: Optional[ParserKeyword] = ParserKeyword() | ||||
|     cpplint: Optional[ParserKeyword] = ParserKeyword() | ||||
|     # FIXME: determine cpplint type | ||||
|     # cpplint: Optional[ParserKeyword] = ParserKeyword() | ||||
|     cpplint: Optional[ParserDummy] = ParserDummy() | ||||
|     result_detail: Optional[ParserResultDetail] = Field( | ||||
|         ParserResultDetail(), alias="result-detail" | ||||
|     ) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user