perf: parallelize per-pack card fetches after roll_for_cards (#99)
All checks were successful
Ruff Lint / lint (pull_request) Successful in 13s
All checks were successful
Ruff Lint / lint (pull_request) Successful in 13s
Closes #99 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
61d61b9348
commit
6b475ba439
@ -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}")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user