Ejemplo n.º 1
0
def _toslice(rank, key):
    '''Transform key to proper slice if necessary
    '''
    if rank == 1:
        if isinstance(key, int):
            return False, key
        if isinstance(key, (tuple, list)):
            nk = len(key)
            if nk == 1:
                key = key[0]
            elif nk > 1:
                raise IndexError, "too many indices"
        if isinstance(key, slice) or key is Ellipsis:
            return True, key
        return False, (key,)

    return _isslice(rank, key), key
Ejemplo n.º 2
0
    def _toslice(self, key):
        '''Transform key to proper slice if necessary
        '''
        if self.rank == 1:
            if isinstance(key, list) and len(key) == 1:
                key = key[0]
            if isinstance(key, slice) or key is Ellipsis:
                return True, key
            if isinstance(key, tuple):
                if len(key) > 1:
                    raise IndexError, "too many indices"
                return False, key
            return False, (key,)

        if _isslice(self.rank, self.shape, key):
            return True, key
        return False, key
Ejemplo n.º 3
0
def _toslice(rank, key):
    '''Transform key to proper slice if necessary
    '''
    if rank == 1:
        if isinstance(key, int):
            return False, key
        if isinstance(key, (tuple, list)):
            nk = len(key)
            if nk == 1:
                key = key[0]
            elif nk > 1:
                raise IndexError, "too many indices"
        if isinstance(key, slice) or key is Ellipsis:
            return True, key
        return False, (key, )

    return _isslice(rank, key), key