def get_summoners_by_name(names):
    """
    Gets a bunch of summoners by name

    Args:
        names (list<str>): the names of the summoners

    Returns:
        list<Summoner>: the summoners
    """
    summoners = cassiopeia.core.requests.data_store.get(cassiopeia.type.core.summoner.Summoner, names, "name")

    # Find which summoners weren't cached
    missing = []
    loc = []
    for i in range(len(names)):
        if not summoners[i]:
            missing.append(names[i])
            loc.append(i)

    if not missing:
        return summoners

    # Make requests to get them
    new = cassiopeia.core.requests.call_with_ensured_size(cassiopeia.dto.summonerapi.get_summoners_by_name, 40, missing)
    to_store = []
    for i in range(len(missing)):
        try:
            summoner = cassiopeia.type.core.summoner.Summoner(new[__standardize(missing[i])])
            to_store.append(summoner)
        except __HOLE__:
            summoner = None
        summoners[loc[i]] = summoner

    cassiopeia.core.requests.data_store.store(to_store, [summoner.id for summoner in to_store])
    cassiopeia.core.requests.data_store.store(to_store, [summoner.name for summoner in to_store])
    return summoners
dataset/ETHPy150Open meraki-analytics/cassiopeia/cassiopeia/core/summonerapi.py/get_summoners_by_name