code: def csv_to_list_of_dicts(lines: List[str],
                           csvheader: str,
                           quotechar: str = '"') -> List[Dict[str, str]]:
      
      data = []  # type: List[Dict[str, str]]
      # an empty line marks the end of the block
      csvlines = get_lines_from_to(lines, csvheader, [None])[1:]
      # ... remove the CSV header
      headerfields = csvheader.split(",")
      reader = csv.reader(csvlines, quotechar=quotechar)
      for fields in reader:
          row = {}  # type: Dict[str, str]
          for f in range(len(headerfields)):
              row[headerfields[f]] = fields[f]
          data.append(row)
      return data
docs: Extracts data from a list of CSV lines (starting with a defined header
      line) embedded in a longer text block but ending with a blank line.
  
      Args:
          lines: CSV lines
          csvheader: CSV header line
          quotechar: ``quotechar`` parameter passed to :func:`csv.reader`
  
      Returns:
          list of dictionaries mapping fieldnames (from the header) to values