cleanup: fix some latent open(path).read() et al calls we previously missed
This pattern was banned by check-code way back in 1b4b82063ce2 (may of
2011), but due to a regular expression rewriting bug in check-code
these particular callsites were never detected. Python 3.7 caught the
bug, which then exposed these errors.
Differential Revision: https://phab.mercurial-scm.org/D2863
--- a/i18n/hggettext Wed Mar 14 11:16:45 2018 -0700
+++ b/i18n/hggettext Wed Mar 14 15:39:28 2018 -0400
@@ -104,7 +104,8 @@
"""
mod = importpath(path)
if not path.startswith('mercurial/') and mod.__doc__:
- src = open(path).read()
+ with open(path) as fobj:
+ src = fobj.read()
lineno = 1 + offset(src, mod.__doc__, path, 7)
print(poentry(path, lineno, mod.__doc__))
@@ -143,7 +144,8 @@
def rawtext(path):
- src = open(path).read()
+ with open(path) as f:
+ src = f.read()
print(poentry(path, 1, src))
--- a/mercurial/cffi/bdiffbuild.py Wed Mar 14 11:16:45 2018 -0700
+++ b/mercurial/cffi/bdiffbuild.py Wed Mar 14 15:39:28 2018 -0400
@@ -4,9 +4,10 @@
import os
ffi = cffi.FFI()
-ffi.set_source("mercurial.cffi._bdiff",
- open(os.path.join(os.path.join(os.path.dirname(__file__), '..'),
- 'bdiff.c')).read(), include_dirs=['mercurial'])
+with open(os.path.join(os.path.join(os.path.dirname(__file__), '..'),
+ 'bdiff.c')) as f:
+ ffi.set_source("mercurial.cffi._bdiff",
+ f.read(), include_dirs=['mercurial'])
ffi.cdef("""
struct bdiff_line {
int hash, n, e;
--- a/mercurial/cffi/mpatchbuild.py Wed Mar 14 11:16:45 2018 -0700
+++ b/mercurial/cffi/mpatchbuild.py Wed Mar 14 15:39:28 2018 -0400
@@ -6,8 +6,9 @@
ffi = cffi.FFI()
mpatch_c = os.path.join(os.path.join(os.path.dirname(__file__), '..',
'mpatch.c'))
-ffi.set_source("mercurial.cffi._mpatch", open(mpatch_c).read(),
- include_dirs=["mercurial"])
+with open(mpatch_c) as f:
+ ffi.set_source("mercurial.cffi._mpatch", f.read(),
+ include_dirs=["mercurial"])
ffi.cdef("""
struct mpatch_frag {
--- a/mercurial/posix.py Wed Mar 14 11:16:45 2018 -0700
+++ b/mercurial/posix.py Wed Mar 14 15:39:28 2018 -0400
@@ -264,7 +264,8 @@
# already exists.
target = 'checklink-target'
try:
- open(os.path.join(cachedir, target), 'w').close()
+ fullpath = os.path.join(cachedir, target)
+ open(fullpath, 'w').close()
except IOError as inst:
if inst[0] == errno.EACCES:
# If we can't write to cachedir, just pretend
--- a/tests/f Wed Mar 14 11:16:45 2018 -0700
+++ b/tests/f Wed Mar 14 15:39:28 2018 -0400
@@ -61,7 +61,8 @@
if opts.type:
facts.append(b'file')
if any((opts.hexdump, opts.dump, opts.md5, opts.sha1, opts.sha256)):
- content = open(f, 'rb').read()
+ with open(f, 'rb') as fobj:
+ content = fobj.read()
elif islink:
if opts.type:
facts.append(b'link')