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

        runes = cassiopeia.dto.staticdataapi.get_runes()
        runes = [cassiopeia.type.core.staticdata.Rune(rune[1]) for rune in runes.data.items()]

        cassiopeia.core.requests.data_store.store(runes, [rune.id for rune in runes], [cassiopeia.type.core.staticdata.Rune])
        return runes
Recommend new items for a range of users in the training dataset.
dataset/ETHPy150Open meraki-analytics/cassiopeia/cassiopeia/core/staticdataapi.py/get_runes--crossover with--dataset/ETHPy150Open Mendeley/mrec/mrec/reranking_recommender.py/RerankingRecommender.range_recommend_items