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 unified_diff()
creates?
>>> 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