Compare commits

..

4 Commits

Author SHA1 Message Date
a8e2aee281 Switch to version 3.0.0b40 2021-02-06 14:45:07 +13:00
13adb479d3 Adds an extern qualifier to the keep_running declaration. 2021-02-05 15:59:43 +01:00
8ba7acdfe1 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
2021-01-13 16:09:04 +01:00
38051b1e4f Removed spurious commentaries 2021-01-13 16:07:42 +01:00
4 changed files with 34 additions and 30 deletions

View File

@ -24,10 +24,6 @@ from cpython.exc cimport PyErr_CheckSignals
from io import BufferedWriter
#REVERSE_SEQ_COLUMN_NAME = b"REVERSE_SEQUENCE" # used by alignpairedend tool
#REVERSE_QUALITY_COLUMN_NAME = b"REVERSE_QUALITY" # used by alignpairedend tool
__title__="Assigns sequence records to the corresponding experiment/sample based on DNA tags and primers"

View File

@ -23,9 +23,8 @@ cdef class TabFormat:
if self.first_line:
self.tags = [k for k in data.keys()]
for k in self.tags:
if self.header and self.first_line:
if self.header and self.first_line:
for k in self.tags:
if isinstance(data.view[k], Column_multi_elts):
keys = data.view[k].keys()
keys.sort()
@ -33,27 +32,36 @@ cdef class TabFormat:
line.append(tobytes(k)+b':'+tobytes(k2))
else:
line.append(tobytes(k))
else:
value = data[k]
if isinstance(data.view[k], Column_multi_elts):
keys = data.view[k].keys()
keys.sort()
if value is None: # all keys at None
for k2 in keys: # TODO could be much more efficient
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:
r = self.sep.join(value for value in line)
r += b'\n'
line = []
for k in self.tags:
value = data[k]
if isinstance(data.view[k], Column_multi_elts):
keys = data.view[k].keys()
keys.sort()
if value is None: # all keys at None
for k2 in keys: # TODO could be much more efficient
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:
self.first_line = False
return self.sep.join(value for value in line)
return r

View File

@ -1,5 +1,5 @@
major = 3
minor = 0
serial= '0b38'
serial= '0b40'
version ="%d.%d.%s" % (major,minor,serial)

View File

@ -25,7 +25,7 @@
* @author Celine Mercier (celine.mercier@metabarcoding.org)
*
*/
bool volatile keep_running;
extern bool volatile keep_running;
void sig_handler(int signum);