[FIX] account_statement_base_import: autodetect CSV file delimiter

This commit is contained in:
Alexandre Fayolle @ camptocamp
2012-11-23 17:27:24 +01:00
parent e0b690363c
commit ccd7b763d1
2 changed files with 9 additions and 4 deletions

View File

@@ -22,7 +22,12 @@ import base64
import csv
def UnicodeDictReader(utf8_data, **kwargs):
csv_reader = csv.DictReader(utf8_data, **kwargs)
sniffer = csv.Sniffer()
pos = utf8_data.tell()
sample_data = utf8_data.read(1024)
utf8_data.seek(pos)
dialect = sniffer.sniff(sample_data, delimiters=',;\t')
csv_reader = csv.DictReader(utf8_data, dialect=dialect, **kwargs)
for row in csv_reader:
yield dict([(key, unicode(value, 'utf-8')) for key, value in row.iteritems()])
@@ -210,4 +215,4 @@ def new_bank_statement_parser(parser_name, *args, **kwargs):
if cls.parser_for(parser_name):
return cls(parser_name, *args, **kwargs)
raise ValueError