# HG changeset patch # User Martin von Zweigbergk # Date 1562695002 25200 # Node ID 854637e3d2d029720a365468e87f5662c73f1bdd # Parent 45afcbfea41790589fc4853d0a2ac1bd65c72838 py3: use array.array.{to,from}bytes() on py3 array.array.{to,from}string() still exists on py3, but they're deprecated and generate warnings. I've put the compat function in compat.pt for now. We can move into a dedicated pycompat.py if we end up with a lot of py3 compat stuff. diff -r 45afcbfea417 -r 854637e3d2d0 hgext3rd/evolve/compat.py --- a/hgext3rd/evolve/compat.py Thu Jul 11 14:31:32 2019 -0700 +++ b/hgext3rd/evolve/compat.py Tue Jul 09 10:56:42 2019 -0700 @@ -7,6 +7,7 @@ """ import inspect +import array from mercurial import ( context, @@ -15,6 +16,7 @@ mdiff, obsolete, obsutil, + pycompat, repair, scmutil, util, @@ -22,6 +24,13 @@ ) from mercurial.hgweb import hgweb_mod +if pycompat.ispy3: + arraytobytes = array.array.tobytes + arrayfrombytes = array.array.frombytes +else: + arraytobytes = array.array.tostring + arrayfrombytes = array.array.fromstring + # hg < 4.6 compat (c8e2d6ed1f9e) try: from mercurial import logcmdutil diff -r 45afcbfea417 -r 854637e3d2d0 hgext3rd/evolve/depthcache.py --- a/hgext3rd/evolve/depthcache.py Thu Jul 11 14:31:32 2019 -0700 +++ b/hgext3rd/evolve/depthcache.py Tue Jul 09 10:56:42 2019 -0700 @@ -185,7 +185,7 @@ else: headerdata = data[:self._cachekeysize] self._cachekey = self._deserializecachekey(headerdata) - self._data.fromstring(data[self._cachekeysize:]) + compat.arrayfrombytes(self._data, data[self._cachekeysize:]) self._ondiskkey = self._cachekey def save(self, repo): @@ -201,7 +201,7 @@ cachefile = repo.cachevfs(self._filepath, 'w', atomictemp=True) headerdata = self._serializecachekey() cachefile.write(headerdata) - cachefile.write(self._data.tostring()) + cachefile.write(compat.arraytobytes(self._data)) cachefile.close() self._ondiskkey = self._cachekey except (IOError, OSError) as exc: diff -r 45afcbfea417 -r 854637e3d2d0 hgext3rd/evolve/firstmergecache.py --- a/hgext3rd/evolve/firstmergecache.py Thu Jul 11 14:31:32 2019 -0700 +++ b/hgext3rd/evolve/firstmergecache.py Tue Jul 09 10:56:42 2019 -0700 @@ -122,7 +122,7 @@ else: headerdata = data[:self._cachekeysize] self._cachekey = self._deserializecachekey(headerdata) - self._data.fromstring(data[self._cachekeysize:]) + compat.arrayfrombytes(self._data, data[self._cachekeysize:]) self._ondiskkey = self._cachekey def save(self, repo): @@ -138,7 +138,7 @@ cachefile = repo.cachevfs(self._filepath, 'w', atomictemp=True) headerdata = self._serializecachekey() cachefile.write(headerdata) - cachefile.write(self._data.tostring()) + cachefile.write(compat.arraytobytes(self._data)) cachefile.close() self._ondiskkey = self._cachekey except (IOError, OSError) as exc: diff -r 45afcbfea417 -r 854637e3d2d0 hgext3rd/evolve/stablesort.py --- a/hgext3rd/evolve/stablesort.py Thu Jul 11 14:31:32 2019 -0700 +++ b/hgext3rd/evolve/stablesort.py Tue Jul 09 10:56:42 2019 -0700 @@ -620,9 +620,9 @@ indexsizedata = data[offset:offset + S_INDEXSIZE.size] indexsize = S_INDEXSIZE.unpack(indexsizedata)[0] offset += S_INDEXSIZE.size - self._index.fromstring(data[offset:offset + indexsize]) + compat.arrayfrombytes(self._index, data[offset:offset + indexsize]) offset += indexsize - self._data.fromstring(data[offset:]) + compat.arrayfrombytes(self._data, data[offset:]) self._ondiskkey = self._cachekey pass @@ -638,8 +638,8 @@ # data to write headerdata = self._serializecachekey() - indexdata = self._index.tostring() - data = self._data.tostring() + indexdata = compat.arraytobytes(self._index) + data = compat.arraytobytes(self._data) indexsize = S_INDEXSIZE.pack(len(indexdata)) # writing