Method: difflib.restore
Calls: 2, Exceptions: 0, Paths: 1Back
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:]