INNER CODE UNIT · Python
diff_lists
weaveworks/kubediff · kubedifflib/_diff.py:97
def diff_lists(path, want, have):
if not len(want) == len(have):
yield different_lengths(path, want, have)
def eq(x, y):
return len(list(diff('', x, y))) == 0
for i in list_subtract(want, have, eq):
yield missing_item(path, "element [%d]" % i)
def list_subtract(xs, ys, equality=operator.eq):
"""Return items in 'xs' but not in 'ys'."""
matched = set()
for i, x in enumerate(xs):
for j, y in enumerate(ys):
if j in matched:
continue