base85: proxy through util module
I'm going to replace hgimporter with a simpler import function, so we can
access to pure/cext modules by name:
# util.py
base85 = policy.importmod('base85') # select pure.base85 or cext.base85
# cffi/base85.py
from ..pure.base85 import * # may re-export pure.base85 functions
This means we'll have to use policy.importmod() function in place of the
standard import statement, but we wouldn't want to write it every place where
C extension modules are used. So this patch makes util host base85 functions.
--- a/mercurial/exchange.py Tue May 02 17:05:22 2017 +0900
+++ b/mercurial/exchange.py Wed Apr 26 21:56:47 2017 +0900
@@ -16,7 +16,6 @@
nullid,
)
from . import (
- base85,
bookmarks as bookmod,
bundle2,
changegroup,
@@ -1509,7 +1508,7 @@
markers = []
for key in sorted(remoteobs, reverse=True):
if key.startswith('dump'):
- data = base85.b85decode(remoteobs[key])
+ data = util.b85decode(remoteobs[key])
version, newmarks = obsolete._readmarkers(data)
markers += newmarks
if markers:
--- a/mercurial/mdiff.py Tue May 02 17:05:22 2017 +0900
+++ b/mercurial/mdiff.py Wed Apr 26 21:56:47 2017 +0900
@@ -13,7 +13,6 @@
from .i18n import _
from . import (
- base85,
bdiff,
error,
mpatch,
@@ -430,7 +429,7 @@
l = chr(ord('A') + l - 1)
else:
l = chr(l - 26 + ord('a') - 1)
- return '%c%s\n' % (l, base85.b85encode(line, True))
+ return '%c%s\n' % (l, util.b85encode(line, True))
def chunk(text, csize=52):
l = len(text)
--- a/mercurial/obsolete.py Tue May 02 17:05:22 2017 +0900
+++ b/mercurial/obsolete.py Wed Apr 26 21:56:47 2017 +0900
@@ -74,7 +74,6 @@
from .i18n import _
from . import (
- base85,
error,
node,
parsers,
@@ -744,7 +743,7 @@
currentlen += len(nextdata)
for idx, part in enumerate(reversed(parts)):
data = ''.join([_pack('>B', _fm0version)] + part)
- keys['dump%i' % idx] = base85.b85encode(data)
+ keys['dump%i' % idx] = util.b85encode(data)
return keys
def listmarkers(repo):
@@ -761,7 +760,7 @@
if old:
repo.ui.warn(_('unexpected old value for %r') % key)
return 0
- data = base85.b85decode(new)
+ data = util.b85decode(new)
lock = repo.lock()
try:
tr = repo.transaction('pushkey: obsolete markers')
--- a/mercurial/patch.py Tue May 02 17:05:22 2017 +0900
+++ b/mercurial/patch.py Wed Apr 26 21:56:47 2017 +0900
@@ -26,7 +26,6 @@
short,
)
from . import (
- base85,
copies,
diffhelpers,
encoding,
@@ -1430,7 +1429,7 @@
else:
l = ord(l) - ord('a') + 27
try:
- dec.append(base85.b85decode(line[1:])[:l])
+ dec.append(util.b85decode(line[1:])[:l])
except ValueError as e:
raise PatchError(_('could not decode "%s" binary patch: %s')
% (self._fname, str(e)))
--- a/mercurial/pvec.py Tue May 02 17:05:22 2017 +0900
+++ b/mercurial/pvec.py Wed Apr 26 21:56:47 2017 +0900
@@ -52,7 +52,6 @@
from .node import nullrev
from . import (
- base85,
util,
)
@@ -166,13 +165,13 @@
else:
pvc[n] = _mergevec(pvc[p1], pvc[p2], node)
bs = _join(*pvc[ctx.rev()])
- return pvec(base85.b85encode(bs))
+ return pvec(util.b85encode(bs))
class pvec(object):
def __init__(self, hashorctx):
if isinstance(hashorctx, str):
self._bs = hashorctx
- self._depth, self._vec = _split(base85.b85decode(hashorctx))
+ self._depth, self._vec = _split(util.b85decode(hashorctx))
else:
self._vec = ctxpvec(hashorctx)
--- a/mercurial/util.py Tue May 02 17:05:22 2017 +0900
+++ b/mercurial/util.py Wed Apr 26 21:56:47 2017 +0900
@@ -42,6 +42,7 @@
import zlib
from . import (
+ base85,
encoding,
error,
i18n,
@@ -50,6 +51,9 @@
pycompat,
)
+b85decode = base85.b85decode
+b85encode = base85.b85encode
+
cookielib = pycompat.cookielib
empty = pycompat.empty
httplib = pycompat.httplib