def _check_grid_values_integer_multiples(CaMap):
    "If there are no spaces and the grid is on a homogeneous scale,\n       => then the grid can be transformed into 'easy-to-compute' spaces.\n    "
    grid_value_list = []
    min_info = None
    for (character_set, info) in CaMap:
        if (info.cc_type == E_CharacterCountType.COLUMN):
            return
        elif (info.cc_type != E_CharacterCountType.GRID):
            continue
        elif (type(info.value) in (str, str)):
            return
        grid_value_list.append(info.value)
        if ((min_info is None) or (info.value < min_info.value)):
            min_info = info
    if (min_info is None):
        return
    if all((((x % min_info.value) == 0) for x in grid_value_list)):
        error.warning((('Setup does not contain spaces, only grids (tabulators). All grid\nwidths are multiples of %i. The grid setup %s is equivalent to\n' % (min_info.value, repr(sorted(grid_value_list))[1:(- 1)])) + ('a setup with space counts %s. Space counts are faster to compute.\n' % repr([(x / min_info.value) for x in sorted(grid_value_list)])[1:(- 1)])), min_info.sr)
    return
If there are no spaces and the grid is on a homogeneous scale,
=> then the grid can be transformed into 'easy-to-compute' spaces.
def _check_grid_values_integer_multiples(CaMap):
    "If there are no spaces and the grid is on a homogeneous scale,\n       => then the grid can be transformed into 'easy-to-compute' spaces.\n    "
    grid_value_list = []
    min_info = None
    for (character_set, info) in CaMap:
        if (info.cc_type == E_CharacterCountType.COLUMN):
            return
        elif (info.cc_type != E_CharacterCountType.GRID):
            continue
        elif (type(info.value) in (str, str)):
            return
        grid_value_list.append(info.value)
        if ((min_info is None) or (info.value < min_info.value)):
            min_info = info
    if (min_info is None):
        return
    if all((((x % min_info.value) == 0) for x in grid_value_list)):
        error.warning((('Setup does not contain spaces, only grids (tabulators). All grid\nwidths are multiples of %i. The grid setup %s is equivalent to\n' % (min_info.value, repr(sorted(grid_value_list))[1:(- 1)])) + ('a setup with space counts %s. Space counts are faster to compute.\n' % repr([(x / min_info.value) for x in sorted(grid_value_list)])[1:(- 1)])), min_info.sr)
    return