Path 1: 2 calls (1.0)

['- one\n', '? ^\n', '+ ore\n', '? ^\n', '- two\n', '- three\n', '? -\n', '+ tree\n', '+ emu\n'] (2)

1 (1) 2 (1)

'one\n' (1) 'two\n' (1) 'three\n' (1) 'ore\n' (1) 'tree\n' (1) 'emu\n' (1)

1def restore(delta, which):
2    r"""
3    Generate one of the two sequences that generated a delta.
4
5    Given a `delta` produced by `Differ.compare()` or `ndiff()`, extract
6    lines originating from file 1 or 2 (parameter `which`), stripping off line
7    prefixes.
8
9    Examples:
10
11    >>> diff = ndiff('one\ntwo\nthree\n'.splitlines(keepends=True),
12    ...              'ore\ntree\nemu\n'.splitlines(keepends=True))
13    >>> diff = list(diff)
14    >>> print(''.join(restore(diff, 1)), end="")
15    one
16    two
17    three
18    >>> print(''.join(restore(diff, 2)), end="")
19    ore
20    tree
21    emu
22    """
23    try:
24        tag = {1: "- ", 2: "+ "}[int(which)]
25    except KeyError:
26        raise ValueError('unknown delta choice (must be 1 or 2): %r'
27                           % which) from None
28    prefixes = ("  ", tag)
29    for line in delta:
30        if line[:2] in prefixes:
31            yield line[2:]