def get_summoner_spells(ids=None):
    if ids is not None:
        summoner_spells = {summoner_spell.id: summoner_spell for summoner_spell in get_summoner_spells()}
        results = []
        for id_ in ids:
            try:
                summoner_spell = summoner_spells[id_]
            except KeyError:
                summoner_spell = None
            results.append(summoner_spell)
        return results
    else:
        if cassiopeia.core.requests.data_store.has_all(cassiopeia.type.core.staticdata.SummonerSpell):
            return cassiopeia.core.requests.data_store.get_all(cassiopeia.type.core.staticdata.SummonerSpell)

        summoner_spells = cassiopeia.dto.staticdataapi.get_summoner_spells()
        summoner_spells = [cassiopeia.type.core.staticdata.SummonerSpell(summoner_spell[1]) for summoner_spell in summoner_spells.data.items()]

        cassiopeia.core.requests.data_store.store(summoner_spells, [summoner_spell.id for summoner_spell in summoner_spells], [cassiopeia.type.core.staticdata.SummonerSpell])
        return summoner_spells
Retrieves recovery data from an LDAP host and escrows to CauliflowerVest.
dataset/ETHPy150Open meraki-analytics/cassiopeia/cassiopeia/core/staticdataapi.py/get_summoner_spells--crossover with--dataset/ETHPy150Open google/cauliflowervest/src/cauliflowervest/client/win/bitlocker_ad_sync.py/BitLockerAdSync._ProcessHost