better error with very long fields in import (#852)

This commit is contained in:
Damien Elmes 2013-05-14 18:38:35 +09:00
parent 7ca86e2dd7
commit f7c5003c1c

View file

@ -2,10 +2,14 @@
# Copyright: Damien Elmes <anki@ichi2.net>
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import codecs, csv, re
import codecs
import csv
import re
from anki.importing.noteimp import NoteImporter, ForeignNote
from anki.lang import _
class TextImporter(NoteImporter):
needDelimiter = True
@ -29,21 +33,24 @@ class TextImporter(NoteImporter):
reader = csv.reader(self.data, delimiter=self.delimiter, doublequote=True)
else:
reader = csv.reader(self.data, self.dialect, doublequote=True)
for row in reader:
row = [unicode(x, "utf-8") for x in row]
if len(row) != self.numFields:
if row:
log.append(_(
"'%(row)s' had %(num1)d fields, "
"expected %(num2)d") % {
"row": u" ".join(row),
"num1": len(row),
"num2": self.numFields,
})
ignored += 1
continue
note = self.noteFromFields(row)
notes.append(note)
try:
for row in reader:
row = [unicode(x, "utf-8") for x in row]
if len(row) != self.numFields:
if row:
log.append(_(
"'%(row)s' had %(num1)d fields, "
"expected %(num2)d") % {
"row": u" ".join(row),
"num1": len(row),
"num2": self.numFields,
})
ignored += 1
continue
note = self.noteFromFields(row)
notes.append(note)
except (csv.Error), e:
log.append(_("Aborted: %s") % str(e))
self.log = log
self.ignored = ignored
self.fileobj.close()