input: 
  from typing import List, Tuple
  
  def parse_csv(filename: str) -> Tuple[int, int, List[float]]:
      """ Parses a CSV and generates a new CSV that adds the total number of rows, total 
      number of columns, and total amount of data for each attribute.
      >>> parse_csv('test.csv')
      (5, 3, [150.0, 240.0, 330.0])
      >>> parse_csv('sample.csv')
      (3, 4, [100.0, 120.0, 140.0, 160.0])
      """
      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
              if cols == 0:
                  cols = len(row)
              for col, value in row.items():
                  if not data_totals:
                      data_totals = [0.0] * cols
                  try:
                      data_totals[list(row.keys()).index(col)] += float(value)
                  except ValueError:
                      pass  # Skip non-numeric values
          
          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([rows, cols] + data_totals)
          
          return rows, cols, data_totals
  
  if __name__ == '__main__':
      filename = 'test.csv'
      parse_csv(filename)
  
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
              if cols == 0:
                  cols = len(row)
              for col, value in row.items():
                  if not data_totals:
                      data_totals = [0.0] * cols
                  try:
                      data_totals[list(row.keys()).index(col)] += float(value)
                  except ValueError:
                      pass  # Skip non-numeric values
          
          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([rows, cols] + data_totals)
          
          return rows, cols, data_totals