diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2011-06-21 18:56:44 -0400 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2011-06-21 18:56:44 -0400 |
| commit | 1f0d68ee795660683b1160b7605614c572d759df (patch) | |
| tree | da1364a4f908372d530828fee27c1f4862c2c954 | |
| parent | cae8fa12761b9a19a4ed87a890ebf8d55af83e34 (diff) | |
| download | tablib-1f0d68ee795660683b1160b7605614c572d759df.tar.gz | |
utf-8-sig encoding for csv/tsv (for excel).
Fixes #18.
| -rw-r--r-- | tablib/formats/_csv.py | 8 | ||||
| -rw-r--r-- | tablib/formats/_tsv.py | 13 |
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 |
