code: def unicode_csv_reader(unicode_csv_data, **kwargs):
      
      if six.PY2:
          # csv.py doesn't do Unicode; encode temporarily as UTF-8:
          csv_reader = csv.reader(utf_8_encoder(unicode_csv_data), **kwargs)
          for row in csv_reader:
              # decode UTF-8 back to Unicode, cell by cell:
              yield [cell.decode('utf-8') for cell in row]
      else:
          for line in csv.reader(unicode_csv_data, **kwargs):
              yield line
docs: Since the standard csv library does not handle unicode in Python 2, we need a wrapper.
      Borrowed and slightly modified from the Python docs:
      https://docs.python.org/2/library/csv.html#csv-examples