Skip to content

Tiny diffs for Python using difflib's SequenceMatcher

License

Notifications You must be signed in to change notification settings

edmund-huber/mini_patch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Tiny diffs for Python using difflib's SequenceMatcher

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages