summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.com>2011-06-21 18:56:44 -0400
committerKenneth Reitz <me@kennethreitz.com>2011-06-21 18:56:44 -0400
commit1f0d68ee795660683b1160b7605614c572d759df (patch)
treeda1364a4f908372d530828fee27c1f4862c2c954
parentcae8fa12761b9a19a4ed87a890ebf8d55af83e34 (diff)
downloadtablib-1f0d68ee795660683b1160b7605614c572d759df.tar.gz
utf-8-sig encoding for csv/tsv (for excel).
Fixes #18.
-rw-r--r--tablib/formats/_csv.py8
-rw-r--r--tablib/formats/_tsv.py13
2 files changed, 8 insertions, 13 deletions
diff --git a/tablib/formats/_csv.py b/tablib/formats/_csv.py
index 43da4ab..572d196 100644
--- a/tablib/formats/_csv.py
+++ b/tablib/formats/_csv.py
@@ -3,10 +3,6 @@
""" Tablib - CSV Support.
"""
-
-import os
-
-import tablib
from tablib.compat import is_py3, csv, StringIO
@@ -14,7 +10,7 @@ title = 'csv'
extentions = ('csv',)
-DEFAULT_ENCODING = 'utf-8'
+DEFAULT_ENCODING = 'utf-8-sig'
@@ -53,7 +49,7 @@ def import_set(dset, in_stream, headers=True):
def detect(stream):
"""Returns True if given stream is valid CSV."""
try:
- rows = dialect = csv.Sniffer().sniff(stream)
+ csv.Sniffer().sniff(stream)
return True
except csv.Error:
return False \ No newline at end of file
diff --git a/tablib/formats/_tsv.py b/tablib/formats/_tsv.py
index 54838b1..855dff4 100644
--- a/tablib/formats/_tsv.py
+++ b/tablib/formats/_tsv.py
@@ -3,9 +3,6 @@
""" Tablib - TSV (Tab Separated Values) Support.
"""
-import os
-
-import tablib
from tablib.compat import is_py3, csv, StringIO
@@ -13,16 +10,17 @@ from tablib.compat import is_py3, csv, StringIO
title = 'tsv'
extentions = ('tsv',)
-DEFAULT_ENCODING = 'utf-8'
+DEFAULT_ENCODING = 'utf-8-sig'
def export_set(dataset):
"""Returns a TSV representation of Dataset."""
+
stream = StringIO()
if is_py3:
- _tsv = csv.writer(stream, delimiter="\t")
+ _tsv = csv.writer(stream, delimiter='\t')
else:
- _tsv = csv.writer(stream, encoding=DEFAULT_ENCODING, delimiter="\t")
+ _tsv = csv.writer(stream, encoding=DEFAULT_ENCODING, delimiter='\t')
for row in dataset._package(dicts=False):
_tsv.writerow(row)
@@ -32,6 +30,7 @@ def export_set(dataset):
def import_set(dset, in_stream, headers=True):
"""Returns dataset from TSV stream."""
+
dset.wipe()
if is_py3:
@@ -54,7 +53,7 @@ def import_set(dset, in_stream, headers=True):
def detect(stream):
"""Returns True if given stream is valid TSV."""
try:
- rows = dialect = csv.Sniffer().sniff(stream, delimiters='\t')
+ csv.Sniffer().sniff(stream, delimiters='\t')
return True
except csv.Error:
return False