diff --git a/tools/oneclick/base/common.py b/tools/oneclick/base/common.py index de1a5a092515562d7751a9c371c3bc081d3a927d..01a7e7d428c1ee365c3f3ae4963ef34de21e2f3c 100644 --- a/tools/oneclick/base/common.py +++ b/tools/oneclick/base/common.py @@ -421,6 +421,27 @@ def index_a_in_multi_b(a, b): pass return None +def find_indices_where(in_list, value, condition=operator.eq): + """Return list of indices in in_list that match the condition value + + Condition operators from import operator are e.g. + operator.eq : == + operator.ne : != + operator.lt : < + operator.le : <= + operator.gt : > + operator.ge : >= + """ + return [i for i,x in enumerate(in_list) if condition(x, value)] + +def find_indices_where_eq(in_list, value): return find_indices_where_value(in_list, value, operator.eq) +def find_indices_where_ne(in_list, value): return find_indices_where_value(in_list, value, operator.ne) +def find_indices_where_lt(in_list, value): return find_indices_where_value(in_list, value, operator.lt) +def find_indices_where_le(in_list, value): return find_indices_where_value(in_list, value, operator.le) +def find_indices_where_gt(in_list, value): return find_indices_where_value(in_list, value, operator.gt) +def find_indices_where_ge(in_list, value): return find_indices_where_value(in_list, value, operator.ge) + + def unique(in_list): """ Extract unique list elements (without changing the order like set() does)