Now handling dictionaries with one key

This commit is contained in:
Celine Mercier
2021-03-10 16:50:30 +13:00
parent fbf0f7dfb6
commit ad1fd3c341
25 changed files with 115 additions and 64 deletions

View File

@ -257,7 +257,8 @@ def run(config):
for tag in dict_dict:
dcols[tag] = (Column.new_column(view, tag, dict_dict[tag][1], \
nb_elements_per_line=len(dict_dict[tag][0]), \
elements_names=list(dict_dict[tag][0])), \
elements_names=list(dict_dict[tag][0]), \
dict_column=True), \
dict_dict[tag][1])
@ -328,10 +329,13 @@ def run(config):
value_type = type(value)
nb_elts = 1
value_obitype = OBI_VOID
dict_col = False
if value_type == dict or value_type == list :
nb_elts = len(value)
elt_names = list(value)
if value_type == dict :
dict_col = True
else :
nb_elts = 1
elt_names = None
@ -339,11 +343,9 @@ def run(config):
value_obitype = get_obitype(value)
if value_obitype != OBI_VOID :
dcols[tag] = (Column.new_column(view, tag, value_obitype, nb_elements_per_line=nb_elts, elements_names=elt_names), value_obitype)
dcols[tag] = (Column.new_column(view, tag, value_obitype, nb_elements_per_line=nb_elts, elements_names=elt_names, dict_column=dict_col), value_obitype)
# Fill value
if value_type == dict and nb_elts == 1: # special case that makes the OBI3 create a 1 elt/line column which won't read a dict value
value = value[list(value.keys())[0]] # The solution is to transform the value in a simple atomic one acceptable by the column
dcols[tag][0][i] = value
# TODO else log error?