def get_slices(data, slice_size):
    """Slices up and returns the data in slices of slice_size.

    :param data: list to divide in one or several slices of size slice_size
    :param slice_size: integer designating the size of a slice from data
    :return: list of len(data) / slice_size slices of data of size slice_size if
        the number of items in data is a multiple of slice_size, or list of
        len(data) / slice_size + 1 slices of data of size slice_size except for
        the last slice, of size len(data) - slice_size * len(data) / slice_size
    """
    slices = list()

    indexes = [i for i in range(0, len(data), slice_size)]

    for i in range(0, len(indexes) - 1):
        slices.append(data[indexes[i]:indexes[i + 1]])

    if len(data) > indexes[-1]:  # is there a last slice?
        slices.append(data[indexes[-1]:])

    return slices