Change str.isdecimal to isdigit. On lists keep iterating if unless index is found

stix2.0
Emmanuelle Vargas-Gonzalez 2018-06-12 14:45:15 -04:00
parent fcffb165ad
commit 78a480aa08
1 changed files with 4 additions and 2 deletions

View File

@ -172,11 +172,13 @@ def _iterate_over_values(dict_values, tuple_to_find):
if isinstance(pv, list): if isinstance(pv, list):
for item in pv: for item in pv:
if isinstance(item, _STIXBase): if isinstance(item, _STIXBase):
return find_property_index( index = find_property_index(
item, item,
item.object_properties(), item.object_properties(),
tuple_to_find tuple_to_find
) )
if index is not None:
return index
elif isinstance(item, dict): elif isinstance(item, dict):
for idx, val in enumerate(sorted(item)): for idx, val in enumerate(sorted(item)):
if (tuple_to_find[0] == val and if (tuple_to_find[0] == val and
@ -184,7 +186,7 @@ def _iterate_over_values(dict_values, tuple_to_find):
return idx return idx
elif isinstance(pv, dict): elif isinstance(pv, dict):
for idx, item in enumerate(sorted(pv.keys())): for idx, item in enumerate(sorted(pv.keys())):
if ((item == tuple_to_find[0] and str.isdecimal(item)) and if ((item == tuple_to_find[0] and str.isdigit(item)) and
(pv[item] == tuple_to_find[1])): (pv[item] == tuple_to_find[1])):
return int(tuple_to_find[0]) return int(tuple_to_find[0])
elif pv[item] == tuple_to_find[1]: elif pv[item] == tuple_to_find[1]: