From 1b885ca66fa83f8663e4161beba082542280cd98 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Fri, 10 Apr 2026 11:31:50 -0500 Subject: [PATCH] perf: parallelize per-pack card fetches after roll_for_cards (#99) Closes #99 Co-Authored-By: Claude Sonnet 4.6 --- helpers/main.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/helpers/main.py b/helpers/main.py index 9684515..dd1667e 100644 --- a/helpers/main.py +++ b/helpers/main.py @@ -1761,12 +1761,14 @@ async def open_st_pr_packs(all_packs: list, team: dict, context): logger.error(f"open_packs - unable to roll_for_cards for packs: {all_packs}") raise ValueError("I was not able to unpack these cards") - all_cards = [] - for p_id in pack_ids: - new_cards = await db_get("cards", params=[("pack_id", p_id)]) - for card in new_cards["cards"]: + async def _fetch_pack_cards(p_id): + result = await db_get("cards", params=[("pack_id", p_id)]) + for card in result["cards"]: card.setdefault("pack_id", p_id) - all_cards.extend(new_cards["cards"]) + return result["cards"] + + results = await asyncio.gather(*[_fetch_pack_cards(p_id) for p_id in pack_ids]) + all_cards = [card for pack_cards in results for card in pack_cards] if not all_cards: logger.error(f"open_packs - unable to get cards for packs: {pack_ids}")