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

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…