# HG changeset patch # User Augie Fackler # Date 2016-06-10 04:12:33 # Node ID 0d83ad967bf81ba1a435e095f091aa4c2200b89c # Parent ae92c3eee88ec24089c014d7193cd710ffcd1271 cleanup: replace uses of util.(md5|sha1|sha256|sha512) with hashlib.\1 All versions of Python we support or hope to support make the hash functions available in the same way under the same name, so we may as well drop the util forwards. diff --git a/hgext/chgserver.py b/hgext/chgserver.py --- a/hgext/chgserver.py +++ b/hgext/chgserver.py @@ -43,6 +43,7 @@ from __future__ import absolute_import import SocketServer import errno import gc +import hashlib import inspect import os import random @@ -76,7 +77,7 @@ testedwith = 'internal' def _hashlist(items): """return sha1 hexdigest for a list""" - return util.sha1(str(items)).hexdigest() + return hashlib.sha1(str(items)).hexdigest() # sensitive config sections affecting confighash _configsections = [ diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py --- a/hgext/fsmonitor/__init__.py +++ b/hgext/fsmonitor/__init__.py @@ -91,6 +91,7 @@ will disable itself if any of those are from __future__ import absolute_import +import hashlib import os import stat import sys @@ -141,7 +142,7 @@ def _hashignore(ignore): copy. """ - sha1 = util.sha1() + sha1 = hashlib.sha1() if util.safehasattr(ignore, 'includepat'): sha1.update(ignore.includepat) sha1.update('\0\0') diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py +++ b/hgext/largefiles/lfcommands.py @@ -10,6 +10,7 @@ from __future__ import absolute_import import errno +import hashlib import os import shutil @@ -229,7 +230,7 @@ def _lfconvert_addchangeset(rsrc, rdst, raise error.Abort(_('largefile %s becomes symlink') % f) # largefile was modified, update standins - m = util.sha1('') + m = hashlib.sha1('') m.update(ctx[f].data()) hash = m.hexdigest() if f not in lfiletohash or lfiletohash[f] != hash: diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -10,6 +10,7 @@ from __future__ import absolute_import import copy +import hashlib import os import platform import stat @@ -359,7 +360,7 @@ def writestandin(repo, standin, hash, ex def copyandhash(instream, outfile): '''Read bytes from instream (iterable) and write them to outfile, computing the SHA-1 hash of the data along the way. Return the hash.''' - hasher = util.sha1('') + hasher = hashlib.sha1('') for data in instream: hasher.update(data) outfile.write(data) @@ -371,7 +372,7 @@ def hashrepofile(repo, file): def hashfile(file): if not os.path.exists(file): return '' - hasher = util.sha1('') + hasher = hashlib.sha1('') fd = open(file, 'rb') for data in util.filechunkiter(fd, 128 * 1024): hasher.update(data) @@ -400,7 +401,7 @@ def urljoin(first, second, *arg): def hexsha1(data): """hexsha1 returns the hex-encoded sha1 sum of the data in the file-like object data""" - h = util.sha1() + h = hashlib.sha1() for chunk in util.filechunkiter(data): h.update(chunk) return h.hexdigest() diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -8,6 +8,7 @@ from __future__ import absolute_import import errno +import hashlib from .i18n import _ from .node import ( @@ -1646,7 +1647,7 @@ def check_heads(repo, their_heads, conte Used by peer for unbundling. """ heads = repo.heads() - heads_hash = util.sha1(''.join(sorted(heads))).digest() + heads_hash = hashlib.sha1(''.join(sorted(heads))).digest() if not (their_heads == ['force'] or their_heads == heads or their_heads == ['hashed', heads_hash]): # someone else committed/pushed/unbundled while we diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import errno +import hashlib import os import shutil @@ -480,7 +481,8 @@ def clone(ui, peeropts, source, dest=Non ui.status(_('(not using pooled storage: ' 'unable to resolve identity of remote)\n')) elif sharenamemode == 'remote': - sharepath = os.path.join(sharepool, util.sha1(source).hexdigest()) + sharepath = os.path.join( + sharepool, hashlib.sha1(source).hexdigest()) else: raise error.Abort('unknown share naming mode: %s' % sharenamemode) diff --git a/mercurial/keepalive.py b/mercurial/keepalive.py --- a/mercurial/keepalive.py +++ b/mercurial/keepalive.py @@ -110,6 +110,7 @@ EXTRA ATTRIBUTES AND METHODS from __future__ import absolute_import, print_function import errno +import hashlib import httplib import socket import sys @@ -624,8 +625,7 @@ def error_handler(url): keepalive_handler.close_all() def continuity(url): - from . import util - md5 = util.md5 + md5 = hashlib.md5 format = '%25s: %s' # first fetch the file with the normal http handler diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -8,6 +8,7 @@ from __future__ import absolute_import import errno +import hashlib import inspect import os import random @@ -1013,7 +1014,7 @@ class localrepository(object): hint=_("run 'hg recover' to clean up transaction")) idbase = "%.40f#%f" % (random.random(), time.time()) - txnid = 'TXN:' + util.sha1(idbase).hexdigest() + txnid = 'TXN:' + hashlib.sha1(idbase).hexdigest() self.hook('pretxnopen', throw=True, txnname=desc, txnid=txnid) self._writejournal(desc) diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -8,6 +8,7 @@ from __future__ import absolute_import import errno +import hashlib import os import shutil import struct @@ -408,7 +409,7 @@ class mergestate(object): if fcl.isabsent(): hash = nullhex else: - hash = util.sha1(fcl.path()).hexdigest() + hash = hashlib.sha1(fcl.path()).hexdigest() self._repo.vfs.write('merge/' + hash, fcl.data()) self._state[fd] = ['u', hash, fcl.path(), fca.path(), hex(fca.filenode()), diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -12,6 +12,7 @@ import collections import copy import email import errno +import hashlib import os import posixpath import re @@ -2412,7 +2413,7 @@ def trydiff(repo, revs, ctx1, ctx2, modi if not text: text = "" l = len(text) - s = util.sha1('blob %d\0' % l) + s = hashlib.sha1('blob %d\0' % l) s.update(text) return s.hexdigest() diff --git a/mercurial/repair.py b/mercurial/repair.py --- a/mercurial/repair.py +++ b/mercurial/repair.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import errno +import hashlib from .i18n import _ from .node import short @@ -35,7 +36,7 @@ def _bundle(repo, bases, heads, node, su # Include a hash of all the nodes in the filename for uniqueness allcommits = repo.set('%ln::%ln', bases, heads) allhashes = sorted(c.hex() for c in allcommits) - totalhash = util.sha1(''.join(allhashes)).hexdigest() + totalhash = hashlib.sha1(''.join(allhashes)).hexdigest() name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix) comp = None diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import copy +import hashlib import heapq import struct @@ -18,7 +19,6 @@ from . import ( obsolete, phases, tags as tagsmod, - util, ) def hideablerevs(repo): @@ -102,7 +102,7 @@ def cachehash(repo, hideable): it to the cache. Upon reading we can easily validate by checking the hash against the stored one and discard the cache in case the hashes don't match. """ - h = util.sha1() + h = hashlib.sha1() h.update(''.join(repo.heads())) h.update(str(hash(frozenset(hideable)))) return h.digest() diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -10,6 +10,7 @@ from __future__ import absolute_import import contextlib import errno import glob +import hashlib import os import re import shutil @@ -224,7 +225,7 @@ def filteredhash(repo, maxrev): key = None revs = sorted(r for r in cl.filteredrevs if r <= maxrev) if revs: - s = util.sha1() + s = hashlib.sha1() for rev in revs: s.update('%s;' % rev) key = s.digest() diff --git a/mercurial/similar.py b/mercurial/similar.py --- a/mercurial/similar.py +++ b/mercurial/similar.py @@ -7,6 +7,8 @@ from __future__ import absolute_import +import hashlib + from .i18n import _ from . import ( bdiff, @@ -27,14 +29,14 @@ def _findexactmatches(repo, added, remov for i, fctx in enumerate(removed): repo.ui.progress(_('searching for exact renames'), i, total=numfiles, unit=_('files')) - h = util.sha1(fctx.data()).digest() + h = hashlib.sha1(fctx.data()).digest() hashes[h] = fctx # For each added file, see if it corresponds to a removed file. for i, fctx in enumerate(added): repo.ui.progress(_('searching for exact renames'), i + len(removed), total=numfiles, unit=_('files')) - h = util.sha1(fctx.data()).digest() + h = hashlib.sha1(fctx.data()).digest() if h in hashes: yield (hashes[h], fctx) diff --git a/mercurial/sslutil.py b/mercurial/sslutil.py --- a/mercurial/sslutil.py +++ b/mercurial/sslutil.py @@ -9,6 +9,7 @@ from __future__ import absolute_import +import hashlib import os import ssl import sys @@ -388,9 +389,9 @@ def validatesocket(sock): # If a certificate fingerprint is pinned, use it and only it to # validate the remote cert. peerfingerprints = { - 'sha1': util.sha1(peercert).hexdigest(), - 'sha256': util.sha256(peercert).hexdigest(), - 'sha512': util.sha512(peercert).hexdigest(), + 'sha1': hashlib.sha1(peercert).hexdigest(), + 'sha256': hashlib.sha256(peercert).hexdigest(), + 'sha512': hashlib.sha512(peercert).hexdigest(), } def fmtfingerprint(s): diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -9,6 +9,7 @@ from __future__ import absolute_import import copy import errno +import hashlib import os import posixpath import re @@ -50,7 +51,7 @@ def _expandedabspath(path): def _getstorehashcachename(remotepath): '''get a unique filename for the store hash cache of a remote repository''' - return util.sha1(_expandedabspath(remotepath)).hexdigest()[0:12] + return hashlib.sha1(_expandedabspath(remotepath)).hexdigest()[0:12] class SubrepoAbort(error.Abort): """Exception class used to avoid handling a subrepo error more than once""" @@ -659,7 +660,7 @@ class hgsubrepo(abstractsubrepo): yield '# %s\n' % _expandedabspath(remotepath) vfs = self._repo.vfs for relname in filelist: - filehash = util.sha1(vfs.tryread(relname)).hexdigest() + filehash = hashlib.sha1(vfs.tryread(relname)).hexdigest() yield '%s = %s\n' % (relname, filehash) @propertycache diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py --- a/mercurial/wireproto.py +++ b/mercurial/wireproto.py @@ -7,6 +7,7 @@ from __future__ import absolute_import +import hashlib import itertools import os import sys @@ -410,7 +411,7 @@ class wirepeer(peer.peerrepository): if heads != ['force'] and self.capable('unbundlehash'): heads = encodelist(['hashed', - util.sha1(''.join(sorted(heads))).digest()]) + hashlib.sha1(''.join(sorted(heads))).digest()]) else: heads = encodelist(heads)