docs: def _p2_unicode_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
      """ Encode Unicode as UTF-8 and parse as CSV.
  
          This is needed since Python 2's `csv` doesn't do Unicode.
  
          Kudos: https://docs.python.org/2/library/csv.html#examples
  
          :param unicode_csv_data: The Unicode stream to parse.
          :param dialect: The CSV dialect to use.
          :param kwargs: Any other parameters to pass to csv.reader.
  
          :returns: An iterator
      """
      # Encode temporarily as UTF-8:
      utf8_csv_data = _utf_8_encoder(unicode_csv_data)
  
      # Now we can parse!
      csv_reader = csv.reader(utf8_csv_data, dialect=dialect, **kwargs)
  
      # Decode UTF-8 back to Unicode, cell by cell:
      return ([unicode(cell, 'utf-8') for cell in row] for row in csv_reader)