Skip to content
16 changes: 5 additions & 11 deletions src/crawlee/statistics/_error_snapshotter.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,13 @@ async def capture_snapshot(
if snapshot := await context.get_snapshot():
kvs = await KeyValueStore.open(name=self._kvs_name)
snapshot_base_name = self._get_snapshot_base_name(error_message, file_and_line)
snapshot_save_tasks = list[asyncio.Task]()

if snapshot.html:
snapshot_save_tasks.append(
asyncio.create_task(self._save_html(kvs, snapshot.html, base_name=snapshot_base_name))
)
async with asyncio.TaskGroup() as tg:
if snapshot.html:
tg.create_task(self._save_html(kvs, snapshot.html, base_name=snapshot_base_name))

if snapshot.screenshot:
snapshot_save_tasks.append(
asyncio.create_task(self._save_screenshot(kvs, snapshot.screenshot, base_name=snapshot_base_name))
)

await asyncio.gather(*snapshot_save_tasks)
if snapshot.screenshot:
tg.create_task(self._save_screenshot(kvs, snapshot.screenshot, base_name=snapshot_base_name))

async def _save_html(self, kvs: KeyValueStore, html: str, base_name: str) -> None:
file_name = f'{base_name}.html'
Expand Down
Loading