@@ -34,19 +34,39 @@ def odml_tuple_import(t_count, new_value):
3434 except NameError :
3535 unicode = str
3636
37- if len (new_value ) != 1 and not isinstance (new_value [0 ], unicode ):
38- return new_value
39-
40- cln = new_value [0 ].strip ()
41- l_check = cln .startswith ("[" ) and cln .endswith ("]" )
42- br_check = cln .count ("(" ) == cln .count (")" )
43- com_check = cln .count ("(" ) == (cln .count ("," ) + 1 )
44- sep_check = t_count == 1 or cln .count ("(" ) == (cln .count (";" ) / (t_count - 1 ))
45-
46- if l_check and br_check and com_check and sep_check :
47- new_value = cln [1 :- 1 ].split ("," )
48-
49- return new_value
37+ if not isinstance (new_value , (list , tuple )) and \
38+ not isinstance (new_value [0 ], (list , tuple )):
39+ new_value = [new_value ]
40+
41+ return_value = []
42+
43+ for n_val in new_value :
44+ if isinstance (n_val , (list , tuple )):
45+ if len (n_val ) == t_count :
46+ n_val_str = "("
47+ for tuple_val in n_val :
48+ n_val_str += str (tuple_val ) + "; "
49+ return_value += [n_val_str [:- 2 ] + ")" ]
50+ else :
51+ #non-unicode handling needed for python2
52+ if len (n_val ) != 1 and not isinstance (n_val [0 ], unicode ):
53+ n_val = n_val .encode ('utf-8' )
54+ cln = n_val .strip ()
55+ br_check = cln .count ("(" ) == cln .count (")" )
56+ sep_check = t_count == 1 or cln .count ("(" ) == (cln .count (";" ) / (t_count - 1 ))
57+
58+ if len (new_value ) == 1 and cln .startswith ("[" ):
59+ l_check = cln .startswith ("[" ) and cln .endswith ("]" )
60+ com_check = cln .count ("(" ) == (cln .count ("," ) + 1 )
61+ if l_check and br_check and com_check and sep_check :
62+ return_value = cln [1 :- 1 ].split ("," )
63+ elif br_check and sep_check :
64+ return_value += [cln ]
65+
66+ if not return_value :
67+ return_value = new_value
68+
69+ return return_value
5070
5171
5272@allow_inherit_docstring
0 commit comments