packaging: don't use locale encoding to compute MD5 checksums

Open the file in binary mode or use UTF-8 encoding.
This commit is contained in:
Victor Stinner 2011-05-19 15:09:57 +02:00
parent cd0f7bfd32
commit 35de5ac44d
3 changed files with 7 additions and 7 deletions

View file

@ -133,9 +133,9 @@ class install_distinfo(Command):
writer.writerow((fpath, '', ''))
else:
size = os.path.getsize(fpath)
with open(fpath, 'r') as fp:
with open(fpath, 'rb') as fp:
hash = hashlib.md5()
hash.update(fp.read().encode())
hash.update(fp.read())
md5sum = hash.hexdigest()
writer.writerow((fpath, md5sum, size))

View file

@ -400,10 +400,10 @@ class MainProgram:
self.data['description']).lower().encode())
ref = ref.digest()
for readme in glob.glob('README*'):
with open(readme) as fp:
with open(readme, encoding='utf-8') as fp:
contents = fp.read()
val = md5(re.sub('\s', '',
contents.lower()).encode()).digest()
contents = re.sub('\s', '', contents.lower()).encode()
val = md5(contents).digest()
if val == ref:
del data['description']
data['description-file'] = readme

View file

@ -168,8 +168,8 @@ class InstallDistinfoTestCase(support.TempdirManager,
else:
size = os.path.getsize(f)
md5 = hashlib.md5()
with open(f) as fp:
md5.update(fp.read().encode())
with open(f, 'rb') as fp:
md5.update(fp.read())
hash = md5.hexdigest()
expected.append([f, hash, str(size)])