Skip to content

Commit 8064e60

Browse files
committed
[property.py] Allow List/Tuple-Format Tuple Input
1 parent 441432b commit 8064e60

File tree

1 file changed

+33
-13
lines changed

1 file changed

+33
-13
lines changed

odml/property.py

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)