diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2011-05-12 02:28:03 -0400 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2011-05-12 02:28:03 -0400 |
| commit | 4ebd66cb0939858749030a8dd3403bbcaa675fac (patch) | |
| tree | 546ce4417cb133bfbeda817c4f8a5e299ef6ff85 /tablib/formats/_csv.py | |
| parent | 2e5577ee91dbfb77a4698b7503a71964a1dc2def (diff) | |
| parent | bfcfa37ebbf5850b8ba4368ccaac0aa3f4c55f20 (diff) | |
| download | tablib-4ebd66cb0939858749030a8dd3403bbcaa675fac.tar.gz | |
Merge branch 'bug/csv-unicode' into develop
Closes #7
Conflicts:
test_tablib.py
Diffstat (limited to 'tablib/formats/_csv.py')
| -rw-r--r-- | tablib/formats/_csv.py | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/tablib/formats/_csv.py b/tablib/formats/_csv.py index 4b1dc02..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 csv import os import tablib @@ -20,11 +25,18 @@ title = 'csv' extentions = ('csv',) +DEFAULT_ENCODING = 'utf-8' + + def export_set(dataset): """Returns CSV representation of Dataset.""" stream = StringIO() - _csv = csv.writer(stream) + + 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) @@ -37,7 +49,10 @@ def import_set(dset, in_stream, headers=True): dset.wipe() - rows = csv.reader(in_stream.splitlines()) + 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): |
