D12368: mercurial: use io.BytesIO instead of util.stringio
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Thu Mar 10 01:09:12 UTC 2022
indygreg created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
`util.stringio` is an alias to `io.BytesIO`. Let's just use `io.BytesIO`
directly.
I'm doing this because I noticed pytype was confused about types due to
the indirection.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D12368
AFFECTED FILES
mercurial/archival.py
mercurial/cmdutil.py
mercurial/crecord.py
mercurial/patch.py
mercurial/profiling.py
mercurial/pure/mpatch.py
mercurial/pure/parsers.py
mercurial/url.py
mercurial/wireprotoserver.py
CHANGE DETAILS
diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py
--- a/mercurial/wireprotoserver.py
+++ b/mercurial/wireprotoserver.py
@@ -6,6 +6,7 @@
import contextlib
+import io
import struct
import threading
@@ -24,8 +25,6 @@
stringutil,
)
-stringio = util.stringio
-
urlerr = util.urlerr
urlreq = util.urlreq
@@ -117,7 +116,7 @@
oldout = self._ui.fout
olderr = self._ui.ferr
- out = util.stringio()
+ out = io.BytesIO()
try:
self._ui.fout = out
diff --git a/mercurial/url.py b/mercurial/url.py
--- a/mercurial/url.py
+++ b/mercurial/url.py
@@ -9,6 +9,7 @@
import base64
+import io
import socket
from .i18n import _
@@ -29,7 +30,6 @@
)
httplib = util.httplib
-stringio = util.stringio
urlerr = util.urlerr
urlreq = util.urlreq
@@ -276,7 +276,7 @@
res.length = None
res.chunked = 0
res.will_close = 1
- res.msg = httplib.HTTPMessage(stringio())
+ res.msg = httplib.HTTPMessage(io.BytesIO())
return False
res.msg = httplib.HTTPMessage(res.fp)
diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py
--- a/mercurial/pure/parsers.py
+++ b/mercurial/pure/parsers.py
@@ -25,8 +25,6 @@
from ..revlogutils import nodemap as nodemaputil
from ..revlogutils import constants as revlog_constants
-stringio = io.BytesIO
-
_pack = struct.pack
_unpack = struct.unpack
@@ -955,7 +953,7 @@
def pack_dirstate(dmap, copymap, pl):
- cs = stringio()
+ cs = io.BytesIO()
write = cs.write
write(b"".join(pl))
for f, e in dmap.items():
diff --git a/mercurial/pure/mpatch.py b/mercurial/pure/mpatch.py
--- a/mercurial/pure/mpatch.py
+++ b/mercurial/pure/mpatch.py
@@ -10,9 +10,6 @@
import struct
-stringio = io.BytesIO
-
-
class mpatchError(Exception):
"""error raised when a delta cannot be decoded"""
@@ -71,7 +68,7 @@
if not tl:
return a
- m = stringio()
+ m = io.BytesIO()
# load our original text
m.write(a)
diff --git a/mercurial/profiling.py b/mercurial/profiling.py
--- a/mercurial/profiling.py
+++ b/mercurial/profiling.py
@@ -7,6 +7,7 @@
import contextlib
+import io
from .i18n import _
from .pycompat import (
@@ -225,7 +226,7 @@
try:
if self._output == b'blackbox':
- self._fp = util.stringio()
+ self._fp = io.BytesIO()
elif self._output:
path = util.expandpath(self._output)
self._fp = open(path, b'wb')
diff --git a/mercurial/patch.py b/mercurial/patch.py
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -11,6 +11,7 @@
import contextlib
import copy
import errno
+import io
import os
import re
import shutil
@@ -45,8 +46,6 @@
stringutil,
)
-stringio = util.stringio
-
gitre = re.compile(br'diff --git a/(.*) b/(.*)')
tabsplitter = re.compile(br'(\t+|[^\t]+)')
wordsplitter = re.compile(
@@ -74,7 +73,7 @@
return len(l) == 2 and b' ' not in l[0]
def chunk(lines):
- return stringio(b''.join(lines))
+ return io.BytesIO(b''.join(lines))
def hgsplit(stream, cur):
inheader = True
@@ -107,7 +106,7 @@
def mimesplit(stream, cur):
def msgfp(m):
- fp = stringio()
+ fp = io.BytesIO()
# pytype: disable=wrong-arg-types
g = mail.Generator(fp, mangle_from_=False)
# pytype: enable=wrong-arg-types
@@ -290,7 +289,7 @@
ui.debug(b'found patch at byte %d\n' % m.start(0))
diffs_seen += 1
- cfp = stringio()
+ cfp = io.BytesIO()
for line in payload[: m.start(0)].splitlines():
if line.startswith(b'# HG changeset patch') and not hgpatch:
ui.debug(b'patch generated by hg export\n')
@@ -599,7 +598,7 @@
self.created = 0
self.maxsize = maxsize
if self.maxsize is None:
- self.maxsize = 4 * (2 ** 20)
+ self.maxsize = 4 * (2**20)
self.size = 0
self.data = {}
@@ -1258,7 +1257,7 @@
continue
# Remove comment lines
patchfp = open(patchfn, 'rb')
- ncpatchfp = stringio()
+ ncpatchfp = io.BytesIO()
for line in patchfp:
line = util.fromnativeeol(line)
if not line.startswith(b'#'):
@@ -1677,7 +1676,7 @@
>>> reversedhunks = reversehunks(hunkscomingfromfilterpatch)
>>> from . import util
- >>> fp = util.stringio()
+ >>> fp = io.BytesIO()
>>> for c in reversedhunks:
... c.write(fp)
>>> fp.seek(0) or None
@@ -1734,7 +1733,7 @@
... 7
... 8
... +9'''
- >>> out = util.stringio()
+ >>> out = io.BytesIO()
>>> headers = parsepatch([rawpatch], maxcontext=1)
>>> for header in headers:
... header.write(out)
@@ -1841,7 +1840,7 @@
}
p = parser()
- fp = stringio()
+ fp = io.BytesIO()
fp.write(b''.join(originalchunks))
fp.seek(0)
@@ -2030,7 +2029,7 @@
pos = lr.fp.tell()
fp = lr.fp
except IOError:
- fp = stringio(lr.fp.read())
+ fp = io.BytesIO(lr.fp.read())
gitlr = linereader(fp)
gitlr.push(firstline)
gitpatches = readgitpatch(gitlr)
diff --git a/mercurial/crecord.py b/mercurial/crecord.py
--- a/mercurial/crecord.py
+++ b/mercurial/crecord.py
@@ -9,6 +9,7 @@
# (Itself based on Bryan O'Sullivan's record extension.)
+import io
import os
import re
import signal
@@ -29,8 +30,6 @@
)
from .utils import stringutil
-stringio = util.stringio
-
# patch comments based on the git one
diffhelptext = _(
b"""# To remove '-' lines, make them ' ' lines (context).
@@ -226,7 +225,7 @@
self.hunks = [uihunk(h, self) for h in self.hunks]
def prettystr(self):
- x = stringio()
+ x = io.BytesIO()
self.pretty(x)
return x.getvalue()
@@ -463,7 +462,7 @@
pretty = write
def prettystr(self):
- x = stringio()
+ x = io.BytesIO()
self.pretty(x)
return x.getvalue()
@@ -1799,7 +1798,7 @@
return None
# write the initial patch
- patch = stringio()
+ patch = io.BytesIO()
patch.write(diffhelptext + hunkhelptext)
chunk.header.write(patch)
chunk.write(patch)
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -8,6 +8,7 @@
import copy as copymod
import errno
+import io
import os
import re
@@ -73,8 +74,6 @@
for t in (Any, Dict):
assert t
-stringio = util.stringio
-
# templates of common command options
dryrunopts = [
@@ -575,7 +574,7 @@
util.copyfile(repo.wjoin(f), tmpname, copystat=True)
backups[f] = tmpname
- fp = stringio()
+ fp = io.BytesIO()
for c in chunks:
fname = c.filename()
if fname in backups:
@@ -3704,7 +3703,7 @@
if tobackup is None:
tobackup = set()
# Apply changes
- fp = stringio()
+ fp = io.BytesIO()
# chunks are serialized per file, but files aren't sorted
for f in sorted({c.header.filename() for c in chunks if ishunk(c)}):
prntstatusmsg(b'revert', f)
diff --git a/mercurial/archival.py b/mercurial/archival.py
--- a/mercurial/archival.py
+++ b/mercurial/archival.py
@@ -7,6 +7,7 @@
import gzip
+import io
import os
import struct
import tarfile
@@ -30,8 +31,6 @@
from .utils import stringutil
-stringio = util.stringio
-
# from unzip source code:
_UNX_IFREG = 0x8000
_UNX_IFLNK = 0xA000
@@ -115,7 +114,7 @@
)
}
- out = util.stringio()
+ out = io.BytesIO()
fm = formatter.formatter(repo.ui, out, b'archive', opts)
fm.startitem()
@@ -184,7 +183,7 @@
i.size = 0
else:
i.mode = mode
- data = stringio(data)
+ data = io.BytesIO(data)
self.z.addfile(i, data)
def done(self):
To: indygreg, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list