feat(stage): log stage detail
All checks were successful
submodules sync / sync (push) Successful in 40s
build / build (push) Successful in 1m20s
build / trigger-build-image (push) Successful in 8s

This commit is contained in:
张泊明518370910136 2025-03-02 20:44:58 -05:00
parent b80431c624
commit d51fb9f35d
GPG Key ID: D47306D7062CDA9D
2 changed files with 29 additions and 3 deletions

View File

@ -224,3 +224,14 @@ type StageResult struct {
Results NonNullSlice[ParserResult] `json:"results"` Results NonNullSlice[ParserResult] `json:"results"`
ForceQuit bool `json:"force_quit"` ForceQuit bool `json:"force_quit"`
} }
type CaseDetail struct {
Index int
ExecutorResult ExecutorResult
ParserScores map[string]int
}
type StageDetail struct {
Name string
CaseDetails []CaseDetail
}

View File

@ -64,9 +64,13 @@ func Run(stages []Stage) (
"summary", SummarizeExecutorResults(executorResults), "summary", SummarizeExecutorResults(executorResults),
) )
parserResults = []ParserResult{} parserResults = []ParserResult{}
stageDetail := StageDetail{
Name: stage.Name,
CaseDetails: make([]CaseDetail, len(executorResults)),
}
parserScoresMap := map[string][]int{} parserScoresMap := map[string][]int{}
for _, stageParser := range stage.Parsers { for _, parser := range stage.Parsers {
parserScoresMap[stageParser.Name] = make([]int, len(executorResults)) parserScoresMap[parser.Name] = make([]int, len(executorResults))
} }
for _, stageParser := range stage.Parsers { for _, stageParser := range stage.Parsers {
slog.Info( slog.Info(
@ -129,12 +133,23 @@ func Run(stages []Stage) (
} }
} }
} }
for i := range executorResults {
caseDetail := CaseDetail{
Index: i,
ExecutorResult: executorResults[i],
ParserScores: make(map[string]int),
}
for name, scores := range parserScoresMap {
caseDetail.ParserScores[name] = scores[i]
}
stageDetail.CaseDetails[i] = caseDetail
}
stageResults = append(stageResults, StageResult{ stageResults = append(stageResults, StageResult{
Name: stage.Name, Name: stage.Name,
Results: parserResults, Results: parserResults,
ForceQuit: forceQuitStageName != "", ForceQuit: forceQuitStageName != "",
}) })
slog.Debug("stage done", "name", stage.Name, "parserScoresMap", parserScoresMap) slog.Debug("stage done", "name", stage.Name, "stageDetail", stageDetail)
if forceQuitStageName != "" { if forceQuitStageName != "" {
break break
} }