def check_setitem_lengths(indexer, value, values):
    """
    Validate that value and indexer are the same length.

    An special-case is allowed for when the indexer is a boolean array
    and the number of true values equals the length of ``value``. In
    this case, no exception is raised.

    Parameters
    ----------
    indexer : sequence
        The key for the setitem
    value : array-like
        The value for the setitem
    values : array-like
        The values being set into

    Returns
    -------
    None

    Raises
    ------
    ValueError
        When the indexer is an ndarray or list and the lengths don't
        match.
    """
    # boolean with truth values == len of the value is ok too
    if isinstance(indexer, (np.ndarray, list)):
        if is_list_like(value) and len(indexer) != len(value):
            if not (isinstance(indexer, np.ndarray) and
                    indexer.dtype == np.bool_ and
                    len(indexer[indexer]) == len(value)):
                raise ValueError("cannot set using a list-like indexer "
                                 "with a different length than the value")
    # slice
    elif isinstance(indexer, slice):

        if is_list_like(value) and len(values):
            if len(value) != length_of_indexer(indexer, values):
                raise ValueError("cannot set using a slice indexer with a "
                                 "different length than the value")
def check_setitem_lengths ( indexer , value , values ) : if isinstance ( indexer , ( np . ndarray , list ) ) : if is_list_like ( value ) and len ( indexer ) != len ( value ) : if not ( isinstance ( indexer , np . ndarray ) and indexer . dtype == np . bool_ and len ( indexer [ indexer ] ) == len ( value ) ) : raise ValueError ( "cannot set using a list-like indexer " "with a different length than the value" ) elif isinstance ( indexer , slice ) : if is_list_like ( value ) and len ( values ) : if len ( value ) != length_of_indexer ( indexer , values ) : raise ValueError ( "cannot set using a slice indexer with a " "different length than the value" )
Validate that value and indexer are the same length.

    An special-case is allowed for when the indexer is a boolean array
    and the number of true values equals the length of ``value``. In
    this case, no exception is raised.

    Parameters
    ----------
    indexer : sequence
        The key for the setitem
    value : array-like
        The value for the setitem
    values : array-like
        The values being set into

    Returns
    -------
    None

    Raises
    ------
    ValueError
        When the indexer is an ndarray or list and the lengths don't
        match.