input: from typing import List, Any
  
  def parse_csv(filename: str) -> None:
      """ 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')
      """
      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 col in row:
                  if col not in data_totals:
                      data_totals[col] = [0, 0]
                  data_totals[col][0] += float(row[col])
                  data_totals[col][1] += 1
          # write to new csv
          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'] + list(data_totals.keys()))
              writer.writerow([rows, cols] + [f'{data_totals[col][0]} ({data_totals[col][1]} values)' for col in data_totals])
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 col in row:
                  if col not in data_totals:
                      data_totals[col] = [0, 0]
                  data_totals[col][0] += float(row[col])
                  data_totals[col][1] += 1
          # write to new csv
          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'] + list(data_totals.keys()))
              writer.writerow([rows, cols] + [f'{data_totals[col][0]} ({data_totals[col][1]} values)' for col in data_totals])