Check index for out of bounds

        :param index: index as integer, tuple or slice
        :return: local index as tuple

def out_of_bounds(self, index):
        """ Check index for out of bounds

        :param index: index as integer, tuple or slice
        :return: local index as tuple
        """
        if type(index) is int:
            return self.int_out_of_bounds(index)

        elif type(index) is slice:
            return self.slice_out_of_bounds(index)

        elif type(index) is tuple:

            local_index = []

            for k, item in enumerate(index):

                if type(item) is slice:
                    temp_index = self.slice_out_of_bounds(item, k)

                elif type(item) is int:
                    temp_index = self.int_out_of_bounds(item, k)
                # FIXME: will fail if item is no int or slice!
                if temp_index is None:
                    return temp_index

                local_index.append(temp_index)

            return tuple(local_index)