From 5c50c1822e0d9f0fa493c064902d48cb092fd831 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 12 May 2011 02:00:46 -0400 Subject: integration of unicodecsv module refs #7 --- tablib/formats/_csv.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'tablib/formats') diff --git a/tablib/formats/_csv.py b/tablib/formats/_csv.py index 4b1dc02..ddf477a 100644 --- a/tablib/formats/_csv.py +++ b/tablib/formats/_csv.py @@ -10,7 +10,7 @@ else: from cStringIO import StringIO -import csv +import tablib.packages.unicodecsv as csv import os import tablib @@ -20,11 +20,14 @@ title = 'csv' extentions = ('csv',) +DEFAULT_ENCODING = 'utf-8' + + def export_set(dataset): """Returns CSV representation of Dataset.""" stream = StringIO() - _csv = csv.writer(stream) + _csv = csv.writer(stream, encoding=DEFAULT_ENCODING) for row in dataset._package(dicts=False): _csv.writerow(row) @@ -37,7 +40,7 @@ def import_set(dset, in_stream, headers=True): dset.wipe() - rows = csv.reader(in_stream.splitlines()) + rows = csv.reader(in_stream.splitlines(), encoding=DEFAULT_ENCODING) for i, row in enumerate(rows): if (i == 0) and (headers): -- cgit v1.2.1 From bfcfa37ebbf5850b8ba4368ccaac0aa3f4c55f20 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 12 May 2011 02:24:14 -0400 Subject: Python3 support for csv module. Refs #7 --- tablib/formats/_csv.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'tablib/formats') 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): -- cgit v1.2.1