def find_first_non_empty_col(reader, row):
    """ Finds index of the first non-empty column.

        Args:
            reader (CSVReader or XLSReader): object that implements
                interface for reading input data.
            row (list of values): list of values stored in a row.

        Returns:
            int: index of the first non-empty column.
    """
    for col_index, cell in enumerate(row):
        if reader.cell_is_not_empty(cell) and reader.cell_is_not_blank(cell):
            return col_index
