input: 
  from typing import List, Tuple
  
  def generate_csv_summary(filename: str) -> Tuple[int, int, List[Tuple[float, int]]]:
      """ Parses a CSV file and generates a new CSV file that includes the total number of rows, 
      total number of columns, and the total sum of data values for each attribute.
      >>> generate_csv_summary('example.csv')
      (5, 4, [(45.0, 5), (73.0, 5), (12.0, 5), (98.0, 5)])
      """
      import csv
      with open(filename) as csv_file:
          reader = csv.DictReader(csv_file)
          rows = 0
          cols = 0
          data_totals = []
          
          for row in reader:
              rows += 1
              cols = len(row)
              for index, (col_name, value) in enumerate(row.items()):
                  if len(data_totals) <= index:
                      data_totals.append([float(value), 1])
                  else:
                      existing_total = data_totals[index]
                      new_total = [existing_total[0] + float(value), existing_total[1] + 1]
                      data_totals[index] = new_total
          
          summary = (rows, cols, data_totals)
          
          with open('new_csv.csv', mode='w') as new_csv_file:
              writer = csv.writer(new_csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
              writer.writerow(['Rows', 'Columns', 'Data Totals'])
              writer.writerow([summary[0], summary[1], summary[2]])
          
          return summary
  
  if __name__ == '__main__':
      generate_csv_summary('example.csv')
  
output:     import csv
      with open(filename) as csv_file:
          reader = csv.DictReader(csv_file)
          rows = 0
          cols = 0
          data_totals = []
          
          for row in reader:
              rows += 1
              cols = len(row)
              for index, (col_name, value) in enumerate(row.items()):
                  if len(data_totals) <= index:
                      data_totals.append([float(value), 1])
                  else:
                      existing_total = data_totals[index]
                      new_total = [existing_total[0] + float(value), existing_total[1] + 1]
                      data_totals[index] = new_total
          
          summary = (rows, cols, data_totals)
          
          with open('new_csv.csv', mode='w') as new_csv_file:
              writer = csv.writer(new_csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
              writer.writerow(['Rows', 'Columns', 'Data Totals'])
              writer.writerow([summary[0], summary[1], summary[2]])
          
          return summary