def get_summoner_spells(ids=None):
    """
    Gets a bunch of summoner spells (or all of them)

    Args:
        ids (list<int>): the IDs of the summoner spells to get (or None to get all summoner spells) (default None)

    Returns:
        list<SummonerSpell>: the summoner spells
    """
    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 __HOLE__:
                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
dataset/ETHPy150Open meraki-analytics/cassiopeia/cassiopeia/core/staticdataapi.py/get_summoner_spells