def get_items(ids=None):
    """
    Gets a bunch of items (or all of them)

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

    Returns:
        list<Item>: the items
    """
    if ids is not None:
        items = {item.id: item for item in get_items()}
        results = []
        for id_ in ids:
            try:
                item = items[id_]
            except __HOLE__:
                item = None
            results.append(item)
        return results
    else:
        if cassiopeia.core.requests.data_store.has_all(cassiopeia.type.core.staticdata.Item):
            return cassiopeia.core.requests.data_store.get_all(cassiopeia.type.core.staticdata.Item)

        items = cassiopeia.dto.staticdataapi.get_items()
        items = [cassiopeia.type.core.staticdata.Item(item[1]) for item in items.data.items()]

        cassiopeia.core.requests.data_store.store(items, [item.id for item in items], [cassiopeia.type.core.staticdata.Item])
        return items
dataset/ETHPy150Open meraki-analytics/cassiopeia/cassiopeia/core/staticdataapi.py/get_items