utf-8-sig encoding for csv/tsv (for excel).

Fixes #18.
This commit is contained in:
Kenneth Reitz
2011-06-21 18:56:44 -04:00
parent cae8fa1276
commit 1f0d68ee79
2 changed files with 8 additions and 13 deletions
+2 -6
View File
@@ -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
+6 -7
View File
@@ -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