export: fixed a bug where exporting to tab format with a header would
not export the first line of data and switch to version 3.0.0b39
This commit is contained in:
@ -23,9 +23,8 @@ cdef class TabFormat:
|
|||||||
if self.first_line:
|
if self.first_line:
|
||||||
self.tags = [k for k in data.keys()]
|
self.tags = [k for k in data.keys()]
|
||||||
|
|
||||||
for k in self.tags:
|
if self.header and self.first_line:
|
||||||
|
for k in self.tags:
|
||||||
if self.header and self.first_line:
|
|
||||||
if isinstance(data.view[k], Column_multi_elts):
|
if isinstance(data.view[k], Column_multi_elts):
|
||||||
keys = data.view[k].keys()
|
keys = data.view[k].keys()
|
||||||
keys.sort()
|
keys.sort()
|
||||||
@ -33,27 +32,36 @@ cdef class TabFormat:
|
|||||||
line.append(tobytes(k)+b':'+tobytes(k2))
|
line.append(tobytes(k)+b':'+tobytes(k2))
|
||||||
else:
|
else:
|
||||||
line.append(tobytes(k))
|
line.append(tobytes(k))
|
||||||
else:
|
r = self.sep.join(value for value in line)
|
||||||
value = data[k]
|
r += b'\n'
|
||||||
if isinstance(data.view[k], Column_multi_elts):
|
line = []
|
||||||
keys = data.view[k].keys()
|
|
||||||
keys.sort()
|
for k in self.tags:
|
||||||
if value is None: # all keys at None
|
value = data[k]
|
||||||
for k2 in keys: # TODO could be much more efficient
|
if isinstance(data.view[k], Column_multi_elts):
|
||||||
line.append(self.NAString)
|
keys = data.view[k].keys()
|
||||||
else:
|
keys.sort()
|
||||||
for k2 in keys: # TODO could be much more efficient
|
if value is None: # all keys at None
|
||||||
if value[k2] is not None:
|
for k2 in keys: # TODO could be much more efficient
|
||||||
line.append(str2bytes(str(bytes2str_object(value[k2])))) # genius programming
|
|
||||||
else:
|
|
||||||
line.append(self.NAString)
|
|
||||||
else:
|
|
||||||
if value is not None:
|
|
||||||
line.append(str2bytes(str(bytes2str_object(value))))
|
|
||||||
else:
|
|
||||||
line.append(self.NAString)
|
line.append(self.NAString)
|
||||||
|
else:
|
||||||
|
for k2 in keys: # TODO could be much more efficient
|
||||||
|
if value[k2] is not None:
|
||||||
|
line.append(str2bytes(str(bytes2str_object(value[k2])))) # genius programming
|
||||||
|
else:
|
||||||
|
line.append(self.NAString)
|
||||||
|
else:
|
||||||
|
if value is not None:
|
||||||
|
line.append(str2bytes(str(bytes2str_object(value))))
|
||||||
|
else:
|
||||||
|
line.append(self.NAString)
|
||||||
|
|
||||||
|
if self.header and self.first_line:
|
||||||
|
r += self.sep.join(value for value in line)
|
||||||
|
else:
|
||||||
|
r = self.sep.join(value for value in line)
|
||||||
|
|
||||||
if self.first_line:
|
if self.first_line:
|
||||||
self.first_line = False
|
self.first_line = False
|
||||||
|
|
||||||
return self.sep.join(value for value in line)
|
return r
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
major = 3
|
major = 3
|
||||||
minor = 0
|
minor = 0
|
||||||
serial= '0b38'
|
serial= '0b39'
|
||||||
|
|
||||||
version ="%d.%d.%s" % (major,minor,serial)
|
version ="%d.%d.%s" % (major,minor,serial)
|
||||||
|
Reference in New Issue
Block a user