(self, keys)
return rlo, rhi, clo, chi
Converts a key with potentially mixed types of keys (integer and slice)
        into a tuple of ranges and raises an error if any index is out of self's
        range.

        See Also
        ========

        key2ij
Converts a key with potentially mixed types of keys (integer and slice)
        into a tuple of ranges and raises an error if any index is out of self's
        range.
Converts a key with potentially mixed types of keys ( integer and slice ) into a tuple of ranges and raises an error if any index is out of self s range .
def key2bounds(self, keys):
        """Converts a key with potentially mixed types of keys (integer and slice)
        into a tuple of ranges and raises an error if any index is out of self's
        range.

        See Also
        ========

        key2ij
        """

        islice, jslice = [isinstance(k, slice) for k in keys]
        if islice:
            if not self.rows:
                rlo = rhi = 0
            else:
                rlo, rhi = keys[0].indices(self.rows)[:2]
        else:
            rlo = a2idx(keys[0], self.rows)
            rhi = rlo + 1
        if jslice:
            if not self.cols:
                clo = chi = 0
            else:
                clo, chi = keys[1].indices(self.cols)[:2]
        else:
            clo = a2idx(keys[1], self.cols)
            chi = clo + 1
        return rlo, rhi, clo, chi
def key2bounds ( self , keys ) : islice , jslice = [ isinstance ( k , slice ) for k in keys ] if islice : if not self . rows : rlo = rhi = 0 else : rlo , rhi = keys [ 0 ] . indices ( self . rows ) [ : 2 ] else : rlo = a2idx ( keys [ 0 ] , self . rows ) rhi = rlo + 1 if jslice : if not self . cols : clo = chi = 0 else : clo , chi = keys [ 1 ] . indices ( self . cols ) [ : 2 ] else : clo = a2idx ( keys [ 1 ] , self . cols ) chi = clo + 1 return rlo , rhi , clo , chi