allow for more than one key per CSV column

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3861 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-05-10 12:09:54 +00:00
parent 68fe787feb
commit b85d120ad2

12
external/dsv.py vendored
View file

@ -57,9 +57,12 @@ class CsvReader(BaseReader):
continue
currentElements = {}
for k, v in row.items():
k, v = self.preprocessField(k, v)
if k is None:
keys, v = self.preprocessField(k, v)
if not keys:
continue
if not isinstance(keys, (tuple, list)):
keys = [keys]
for k in keys:
type = None
if '.' in k:
type, k = k.split('.', 1)
@ -74,7 +77,7 @@ class CsvReader(BaseReader):
element.type = type
if isinstance(v, str):
v = v.decode(self.encoding)
element[k] = v
self.setValue(element, k, v)
for element in sorted(currentElements.values(), key=lambda x: x.order):
if element.identifier is None:
result.append(element)
@ -94,6 +97,9 @@ class CsvReader(BaseReader):
def preprocessField(self, k, v):
return k, v
def setValue(self, element, k, v):
element[k] = v
def getDate(self, value, correctBug=False):
if not value:
return value