You might run into this error message if you’ve got an older version of python installed. The problem is the newer with syntax:
with open(self.__temporary_path, 'r') as f:
before = md5(f.read()).digest()
The solution is to just convert it to try/finally
f = open(self.__temporary_path, 'rb')
try:
before = md5(f.read()).digest()
finally:
f.close()