docs: def decode_csv(csv_string, column_names):
    """Parse a csv line into a dict.
  
    Args:
      csv_string: a csv string. May contain missing values "a,,c"
      column_names: list of column names
  
    Returns:
      Dict of {column_name, value_from_csv}. If there are missing values, 
      value_from_csv will be ''.
    """
    import csv
    r = next(csv.reader([csv_string]))
    if len(r) != len(column_names):
      raise ValueError('csv line %s does not have %d columns' % (csv_string, len(column_names)))
    return {k: v for k, v in zip(column_names, r)}