New submission from Daniel <[email protected]>:
Currently difflib offers no way to synthesize a diff output without having to
assemble the original and modified strings and then asking difflib to calculate
the diff.
It would be nice if I could just call a `render_unified_diff(a, b,
grouped_opcodes)` and get a diff output. This is useful when I'm synthesizing a
patch dynamically and I don't necessarily want to load the entire original file
and apply the changes.
One example usage would be something like:
```
def make_patch(self):
# simplified input for synthesizing the diff
a = []
b = []
include_lines = []
for header, _ in self.missing.items():
include_lines.append(f"#include <{header}>\n")
while len(b) < self.line:
b.append(None)
b.extend(include_lines)
opcodes = [
[('insert',
self.line, self.line,
self.line, self.line + len(include_lines))]
]
diff = render_unified_diff(
a, b, opcodes,
fromfile=os.path.join('a', self.filename),
tofile=os.path.join('b', self.filename),
)
return ''.join(diff)
```
----------
components: Library (Lib)
messages: 364669
nosy: pablogsal, ruoso
priority: normal
severity: normal
status: open
title: Create render_*_diff variants to the *_diff functions in difflib
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40026>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com