From 7414b0afae88c273040dea427f55bce86d474eb0 Mon Sep 17 00:00:00 2001
From: Ben Adida <ben@adida.net>
Date: Fri, 22 Oct 2010 09:00:40 -0700
Subject: [PATCH] more robust reading of mac CSV files

---
 helios/models.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/helios/models.py b/helios/models.py
index c241cfa..5763eba 100644
--- a/helios/models.py
+++ b/helios/models.py
@@ -422,8 +422,11 @@ def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
     csv_reader = csv.reader(utf_8_encoder(unicode_csv_data),
                             dialect=dialect, **kwargs)
     for row in csv_reader:
-        # decode UTF-8 back to Unicode, cell by cell:
+      # decode UTF-8 back to Unicode, cell by cell:
+      try:
         yield [unicode(cell, 'utf-8') for cell in row]
+      except:
+        yield [unicode(cell, 'latin-1') for cell in row]        
 
 def utf_8_encoder(unicode_csv_data):
     for line in unicode_csv_data:
@@ -450,7 +453,7 @@ class VoterFile(models.Model):
     self.save()
 
     election = self.election
-    reader = unicode_csv_reader(self.voter_file)
+    reader = unicode_csv_reader(open(self.voter_file.path, "rU"))
     
     last_alias_num = election.last_alias_num
 
-- 
GitLab