perf: parallelize per-pack card fetches after roll_for_cards (#99) #167

Merged
cal merged 1 commits from issue/99-perf-parallelize-per-pack-card-fetches-after-roll into main 2026-04-12 14:54:14 +00:00

View File

@ -1765,12 +1765,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}")