def read_tables(worksheet) ->tuple:
    """
    Read tables from sheet

    :param worksheet: An openpyxl worksheet
    :return: A tuple containing - A list of tables (which is a list of rows, terminated by an empty row in the original spreadsheet),
             and a list of start row indices for each table read in
    """
    buffer = []
    tables = []
    start_rows = []
    start = None
    for i, row in enumerate(worksheet.rows):
        if len(row) > 0 and row[0].data_type == 's' and row[0
            ].value.startswith('#ignore'):
            continue
        for cell in row:
            if cell.value:
                if not buffer:
                    start = i + 1
                buffer.append(row)
                break
        else:
            if buffer:
                tables.append(buffer)
                start_rows.append(start)
            buffer = []
    if buffer:
        tables.append(buffer)
        start_rows.append(start)
    return tables, start_rows
