Python3 support for csv module.

Refs #7
This commit is contained in:
Kenneth Reitz
2011-05-12 02:24:14 -04:00
parent 5c50c1822e
commit bfcfa37ebb
2 changed files with 22 additions and 4 deletions
+15 -3
View File
@@ -5,12 +5,17 @@
import sys
if sys.version_info[0] > 2:
is_py3 = True
from io import StringIO
import csv
else:
is_py3 = False
from cStringIO import StringIO
import tablib.packages.unicodecsv as csv
import tablib.packages.unicodecsv as csv
import os
import tablib
@@ -27,7 +32,11 @@ DEFAULT_ENCODING = 'utf-8'
def export_set(dataset):
"""Returns CSV representation of Dataset."""
stream = StringIO()
_csv = csv.writer(stream, encoding=DEFAULT_ENCODING)
if is_py3:
_csv = csv.writer(stream)
else:
_csv = csv.writer(stream, encoding=DEFAULT_ENCODING)
for row in dataset._package(dicts=False):
_csv.writerow(row)
@@ -40,7 +49,10 @@ def import_set(dset, in_stream, headers=True):
dset.wipe()
rows = csv.reader(in_stream.splitlines(), encoding=DEFAULT_ENCODING)
if is_py3:
rows = csv.reader(in_stream.splitlines())
else:
rows = csv.reader(in_stream.splitlines(), encoding=DEFAULT_ENCODING)
for i, row in enumerate(rows):
if (i == 0) and (headers):
+7 -1
View File
@@ -503,7 +503,13 @@ class TablibTestCase(unittest.TestCase):
"""Check if unicode in csv export doesn't raise."""
data = tablib.Dataset()
data.append([u'\xfc', u'\xfd'])
if sys.version_info[0] > 2:
data.append(['\xfc', '\xfd'])
else:
exec("data.append([u'\xfc', u'\xfd'])")
data.csv