def __fix_slice(slc):
    """
    Fix up a slc object to be tuple of slices.
    slc = None is treated as no slc
    slc is container and each element is converted into a slice object
    None is treated as slice(None)

    Parameters
    ----------
    slc : None or sequence of tuples
        Range of values for slicing data in each axis.
        ((start_1, end_1, step_1), ... , (start_N, end_N, step_N))
        defines slicing parameters for each axis of the data matrix.
    """
    if slc is None:
        return None
    fixed_slc = list()
    for s in slc:
        if not isinstance(s, slice):
            if s is None or isinstance(s, int):
                s = slice(s)
            else:
                s = slice(*s)
        fixed_slc.append(s)
    return tuple(fixed_slc)
