code: def csv_reader(unicode_csv_data, dialect=None, **kwargs):
      
      import csv
  
      dialect = dialect or csv.excel
  
      if is_py3:
          # Python3 supports encoding by default, so just return the object
          for row in csv.reader(unicode_csv_data, dialect=dialect, **kwargs):
              yield [cell for cell in row]
  
      else:
          # csv.py doesn't do Unicode; encode temporarily as UTF-8:
          reader = csv.reader(
              utf_8_encoder(unicode_csv_data), dialect=dialect, **kwargs
          )
          for row in reader:
              # decode UTF-8 back to Unicode, cell by cell:
              yield [unicode(cell, "utf-8") for cell in row]
docs: csv.reader doesn't support Unicode input, so need to use some tricks
      to work around this.
  
      Source: https://docs.python.org/2/library/csv.html#csv-examples