docs: def expand_multirow_data(data):
      """
      Converts multirow cells to a list of lists and informs the number of lines of each row.
  
      Returns:
           tuple: new_data, row_heights
      """
  
      num_cols = len(data[0]) # number of columns
  
      # calculates row heights
      row_heights = []
      for mlrow in data:
          row_height = 0
          for j, cell in enumerate(mlrow):
              row_height = max(row_height, 1 if not isinstance(cell, (list, tuple)) else len(cell))
          row_heights.append(row_height)
      num_lines = sum(row_heights) # line != row (rows are multiline)
  
      # rebuilds table data
      new_data = [[""]*num_cols for i in range(num_lines)]
      i0 = 0
      for row_height, mlrow in zip(row_heights, data):
          for j, cell in enumerate(mlrow):
              if not isinstance(cell, (list, tuple)):
                  cell = [cell]
  
              for incr, x in enumerate(cell):
                  new_data[i0+incr][j] = x
  
          i0 += row_height
  
      return new_data, row_heights