obi import: fixed bugs when rewriting a column: a bug with new elements
names ignoring previous elements names found, a bug with the global obi_errno being reset too late, and a bug with the column dictionary used by obi import not being updated after rewriting a column
This commit is contained in:
@ -192,7 +192,7 @@ def run(config):
|
|||||||
qual_col[i] = seq['quality']
|
qual_col[i] = seq['quality']
|
||||||
|
|
||||||
for tag in seq['tags'] :
|
for tag in seq['tags'] :
|
||||||
|
|
||||||
value = seq['tags'][tag]
|
value = seq['tags'][tag]
|
||||||
|
|
||||||
if tag not in dcols :
|
if tag not in dcols :
|
||||||
@ -234,7 +234,7 @@ def run(config):
|
|||||||
dcols[tag][0][i] = value
|
dcols[tag][0][i] = value
|
||||||
|
|
||||||
except IndexError :
|
except IndexError :
|
||||||
|
|
||||||
value_type = type(value)
|
value_type = type(value)
|
||||||
old_column = dcols[tag][0]
|
old_column = dcols[tag][0]
|
||||||
old_nb_elements_per_line = old_column.nb_elements_per_line
|
old_nb_elements_per_line = old_column.nb_elements_per_line
|
||||||
@ -248,7 +248,7 @@ def run(config):
|
|||||||
if value_type == dict : # Check dictionary keys
|
if value_type == dict : # Check dictionary keys
|
||||||
for k in value :
|
for k in value :
|
||||||
if k not in old_elements_names :
|
if k not in old_elements_names :
|
||||||
new_elements_names = list(value)
|
new_elements_names = list(set(old_elements_names+[tobytes(k) for k in value]))
|
||||||
rewrite = True
|
rewrite = True
|
||||||
break
|
break
|
||||||
|
|
||||||
@ -263,18 +263,22 @@ def run(config):
|
|||||||
if new_nb_elements_per_line == 0 and new_elements_names is not None :
|
if new_nb_elements_per_line == 0 and new_elements_names is not None :
|
||||||
new_nb_elements_per_line = len(new_elements_names)
|
new_nb_elements_per_line = len(new_elements_names)
|
||||||
|
|
||||||
|
# Reset obierrno
|
||||||
|
obi_errno = 0
|
||||||
|
|
||||||
dcols[tag] = (view.rewrite_column_with_diff_attributes(old_column.name,
|
dcols[tag] = (view.rewrite_column_with_diff_attributes(old_column.name,
|
||||||
new_data_type=new_type,
|
new_data_type=new_type,
|
||||||
new_nb_elements_per_line=new_nb_elements_per_line,
|
new_nb_elements_per_line=new_nb_elements_per_line,
|
||||||
new_elements_names=new_elements_names),
|
new_elements_names=new_elements_names),
|
||||||
value_obitype)
|
value_obitype)
|
||||||
|
|
||||||
# Reset obierrno
|
# Update the dictionary:
|
||||||
obi_errno = 0
|
for t in dcols :
|
||||||
|
dcols[t] = (view[t], dcols[t][1])
|
||||||
|
|
||||||
# Fill value
|
# Fill value
|
||||||
dcols[tag][0][i] = value
|
dcols[tag][0][i] = value
|
||||||
|
|
||||||
i+=1
|
i+=1
|
||||||
|
|
||||||
print("\n")
|
print("\n")
|
||||||
|
Reference in New Issue
Block a user