mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
better error with very long fields in import (#852)
This commit is contained in:
parent
7ca86e2dd7
commit
f7c5003c1c
1 changed files with 23 additions and 16 deletions
|
@ -2,10 +2,14 @@
|
||||||
# Copyright: Damien Elmes <anki@ichi2.net>
|
# Copyright: Damien Elmes <anki@ichi2.net>
|
||||||
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
# 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.importing.noteimp import NoteImporter, ForeignNote
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
|
|
||||||
|
|
||||||
class TextImporter(NoteImporter):
|
class TextImporter(NoteImporter):
|
||||||
|
|
||||||
needDelimiter = True
|
needDelimiter = True
|
||||||
|
@ -29,21 +33,24 @@ class TextImporter(NoteImporter):
|
||||||
reader = csv.reader(self.data, delimiter=self.delimiter, doublequote=True)
|
reader = csv.reader(self.data, delimiter=self.delimiter, doublequote=True)
|
||||||
else:
|
else:
|
||||||
reader = csv.reader(self.data, self.dialect, doublequote=True)
|
reader = csv.reader(self.data, self.dialect, doublequote=True)
|
||||||
for row in reader:
|
try:
|
||||||
row = [unicode(x, "utf-8") for x in row]
|
for row in reader:
|
||||||
if len(row) != self.numFields:
|
row = [unicode(x, "utf-8") for x in row]
|
||||||
if row:
|
if len(row) != self.numFields:
|
||||||
log.append(_(
|
if row:
|
||||||
"'%(row)s' had %(num1)d fields, "
|
log.append(_(
|
||||||
"expected %(num2)d") % {
|
"'%(row)s' had %(num1)d fields, "
|
||||||
"row": u" ".join(row),
|
"expected %(num2)d") % {
|
||||||
"num1": len(row),
|
"row": u" ".join(row),
|
||||||
"num2": self.numFields,
|
"num1": len(row),
|
||||||
})
|
"num2": self.numFields,
|
||||||
ignored += 1
|
})
|
||||||
continue
|
ignored += 1
|
||||||
note = self.noteFromFields(row)
|
continue
|
||||||
notes.append(note)
|
note = self.noteFromFields(row)
|
||||||
|
notes.append(note)
|
||||||
|
except (csv.Error), e:
|
||||||
|
log.append(_("Aborted: %s") % str(e))
|
||||||
self.log = log
|
self.log = log
|
||||||
self.ignored = ignored
|
self.ignored = ignored
|
||||||
self.fileobj.close()
|
self.fileobj.close()
|
||||||
|
|
Loading…
Reference in a new issue