"""
import difflib
f = open('delta.txt','r')
data = f.readlines()
l1 = []
l2 = []
for line in data:
l1.append(line[:53])
l2.append(line[56:-1])
print l1
def splitdiff(a, b):
seq = difflib.SequenceMatcher(None, a, b)
result1 = result2 = result3 = ""
for tag, i1, i2, j1, j2 in seq.get_opcodes():
if tag == 'equal':
result1 += "".join(a[i1:i2])
if tag == 'delete':
result2 += "".join(a[i1:i2])
if tag == 'insert':
result3 += "".join(b[j1:j2])
if tag == 'replace':
result2 += "".join(a[i1:i2])
result3 += "".join(b[j1:j2])
return result1, result2, result3
"""
import urllib, gzip, Image, difflib, time
from cStringIO import StringIO
url = 'http://huge:file@www.pythonchallenge.com/pc/return/deltas.gz'
data = urllib.urlopen(url).read()
l1 = []
l2 = []
for line in gzip.GzipFile(fileobj=StringIO(data)):
l1.append(line[:53])
l2.append(line[56:-1])
result = list(difflib.ndiff(l1, l2))
def solve(condition):
s = [chr(int(group, 16))
for line in result if line.startswith(condition)
for group in line[len(condition):].split()]
Image.open(StringIO("".join(s))).show()
for condition in " +-":
solve(condition)
time.sleep(1) # give time to view