@@ -34,19 +34,39 @@ def odml_tuple_import(t_count, new_value):
34
34
except NameError :
35
35
unicode = str
36
36
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
50
70
51
71
52
72
@allow_inherit_docstring
0 commit comments