New submission from Daniel <dan...@ruoso.com>:
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 <rep...@bugs.python.org> <https://bugs.python.org/issue40026> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com