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"`
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),
)
parserResults = []ParserResult{}
stageDetail := StageDetail{
Name: stage.Name,
CaseDetails: make([]CaseDetail, len(executorResults)),
}
parserScoresMap := map[string][]int{}
for _, stageParser := range stage.Parsers {
parserScoresMap[stageParser.Name] = make([]int, len(executorResults))
for _, parser := range stage.Parsers {
parserScoresMap[parser.Name] = make([]int, len(executorResults))
}
for _, stageParser := range stage.Parsers {
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{
Name: stage.Name,
Results: parserResults,
ForceQuit: forceQuitStageName != "",
})
slog.Debug("stage done", "name", stage.Name, "parserScoresMap", parserScoresMap)
slog.Debug("stage done", "name", stage.Name, "stageDetail", stageDetail)
if forceQuitStageName != "" {
break
}