From 5a14b29281f9bb8df90d80cca0e89235b8fcd4ae Mon Sep 17 00:00:00 2001 From: mbsantiago Date: Thu, 19 Mar 2026 01:31:21 +0000 Subject: [PATCH] Do not crash on failure to plot --- src/batdetect2/evaluate/tasks/base.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/batdetect2/evaluate/tasks/base.py b/src/batdetect2/evaluate/tasks/base.py index f9cdcaa..f734c4a 100644 --- a/src/batdetect2/evaluate/tasks/base.py +++ b/src/batdetect2/evaluate/tasks/base.py @@ -10,6 +10,7 @@ from typing import ( TypeVar, ) +from loguru import logger from matplotlib.figure import Figure from pydantic import Field from soundevent import data @@ -107,8 +108,12 @@ class BaseTask(EvaluationTaskProtocol, Generic[T_Output]): self, eval_outputs: List[T_Output] ) -> Iterable[Tuple[str, Figure]]: for plot in self.plots: - for name, fig in plot(eval_outputs): - yield f"{self.prefix}/{name}", fig + try: + for name, fig in plot(eval_outputs): + yield f"{self.prefix}/{name}", fig + except Exception as e: + logger.error(f"Error plotting {self.prefix}: {e}") + continue def evaluate( self,