summaryrefslogtreecommitdiff
path: root/tablib/formats/_csv.py
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.com>2011-05-12 02:24:14 -0400
committerKenneth Reitz <me@kennethreitz.com>2011-05-12 02:24:14 -0400
commitbfcfa37ebbf5850b8ba4368ccaac0aa3f4c55f20 (patch)
treeb95535d33ee6b673eab2855b8cb108cfe869a580 /tablib/formats/_csv.py
parent5c50c1822e0d9f0fa493c064902d48cb092fd831 (diff)
downloadtablib-bfcfa37ebbf5850b8ba4368ccaac0aa3f4c55f20.tar.gz
Python3 support for csv module.
Refs #7
Diffstat (limited to 'tablib/formats/_csv.py')
-rw-r--r--tablib/formats/_csv.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/tablib/formats/_csv.py b/tablib/formats/_csv.py
index ddf477a..bfe8b0f 100644
--- a/tablib/formats/_csv.py
+++ b/tablib/formats/_csv.py
@@ -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):