improve failed items report for analyze chains command

This commit is contained in:
rdk
2025-03-11 19:34:33 +01:00
parent 03765b3d26
commit 0f3b0d5528
3 changed files with 20 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ import cz.siret.prank.utils.Sutils
import cz.siret.prank.utils.Writable
import groovy.transform.CompileStatic
import groovy.util.logging.Slf4j
import org.apache.commons.lang3.exception.ExceptionUtils
import org.biojava.nbio.structure.Atom
import org.biojava.nbio.structure.Group
@@ -1070,6 +1071,20 @@ class Dataset implements Parametrized, Writable, Failable {
Futils.writeFile(csvFile, sb.toString())
}
void writeFullItemErrorsToFile(String txtGzFile) {
if (!hasErrors()) {
return
}
try (Writer out = Futils.getGzipWriter(txtGzFile)) {
for (ItemError ie : errorItems) {
out.write("Item: ${ie.item.label}\n")
out.write(ErrorUtils.stackTraceToString(ie.exception))
out.write("\n\n")
}
}
}
}
static class ItemError {

View File

@@ -186,6 +186,7 @@ class AnalyzeRoutine extends Routine {
writeFile "$outdir/chains.csv", csv
res.writeItemErrorsToCsv("$outdir/errors.csv")
res.writeFullItemErrorsToFile("$outdir/errors_full.txt.gz")
write "Processed ${dataset.size} items"
write res.errorSummary

View File

@@ -29,4 +29,8 @@ class ErrorUtils {
return ExceptionUtils.getRootCauseMessage(throwable)
}
public static String stackTraceToString(Throwable throwable) {
return ExceptionUtils.getStackTrace(throwable)
}
}