Do you have textual (or binary) data that you need to patch?
>>> a = 'you say yes, i say no' >>> b = 'you say stop, and i say go go go'
But you want a smaller patchfile than what difflib's
>>> diff = '\n'.join(difflib.unified_diff(a, b)) >>> len(diff) 137
mini_patch also uses difflib's
SequenceMatcher machinery, but it creates
tiny, ASCII-encoded patches:
>>> patch = mini_patch.make_mini_patch(a.encode('utf-8'), b.encode('utf-8')) >>> patch '0!d:8,2;i:11,$4$dG9w;i:12,$8$IGFuZA==;r:19,1,$4$Zw==;i:21,$8$IGdvIGdv;' >>> len(patch) 70