docs: def compile_fund(workbook, sheet, row, col):
      """
      Compile funding entries. Iter both rows at the same time. Keep adding entries until both cells are empty.
      :param obj workbook:
      :param str sheet:
      :param int row:
      :param int col:
      :return list of dict: l
      """
      logger_excel.info("enter compile_fund")
      l = []
      temp_sheet = workbook.sheet_by_name(sheet)
      while col < temp_sheet.ncols:
          col += 1
          try:
              # Make a dictionary for this funding entry.
              _curr = {
                  'agency': temp_sheet.cell_value(row, col),
                  'grant': temp_sheet.cell_value(row+1, col),
                  "principalInvestigator": temp_sheet.cell_value(row+2, col),
                  "country": temp_sheet.cell_value(row + 3, col)
              }
              # Make a list for all
              _exist = [temp_sheet.cell_value(row, col), temp_sheet.cell_value(row+1, col),
                         temp_sheet.cell_value(row+2, col), temp_sheet.cell_value(row+3, col)]
  
              # Remove all empty items from the list
              _exist = [i for i in _exist if i]
              # If we have all empty entries, then don't continue. Quit funding and return what we have.
              if not _exist:
                  return l
  
              # We have funding data. Add this funding block to the growing list.
              l.append(_curr)
  
          except IndexError as e:
              logger_excel.debug("compile_fund: IndexError: sheet:{} row:{} col:{}, {}".format(sheet, row, col, e))
      logger_excel.info("exit compile_fund")
      return l