Pass search results as set of item IDs

This commit is contained in:
DarkPhoenix
2020-04-16 15:13:32 +03:00
parent 32db3e3179
commit 1a897c0419
5 changed files with 25 additions and 7 deletions

View File

@@ -98,6 +98,16 @@ def getItem(lookfor, eager=None):
raise TypeError("Need integer or string as argument")
return item
@cachedQuery(1, "itemIDs")
def getItems(itemIDs, eager=None):
if not isinstance(itemIDs, (tuple, list, set)) or not all(isinstance(t, int) for t in itemIDs):
raise TypeError("Need iterable of integers as argument")
if eager is None:
items = get_gamedata_session().query(Item).filter(Item.ID.in_(itemIDs)).all()
else:
items = get_gamedata_session().query(Item).options(*processEager(eager)).filter(Item.ID.in_(itemIDs)).all()
return items
def getMutaplasmid(lookfor, eager=None):
if isinstance(lookfor, int):