From b6cd6922584ad9d06929b1b542af1290f9bded49 Mon Sep 17 00:00:00 2001 From: TPV Date: Mon, 27 Jul 2026 10:23:07 -0700 Subject: [PATCH] added first_error for asyncio task groups --- src/monitor_utils/runner.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/monitor_utils/runner.py b/src/monitor_utils/runner.py index 0358772..645601d 100644 --- a/src/monitor_utils/runner.py +++ b/src/monitor_utils/runner.py @@ -553,3 +553,12 @@ async def retry_failed_pages( retry_attempt += 1 return failed_pages + + +def first_error(group_exc: BaseExceptionGroup) -> BaseException: + """Return the first leaf exception of a possibly nested exception group.""" + error = group_exc.exceptions[0] + while isinstance(error, BaseExceptionGroup): + error = error.exceptions[0] + + return error