# HG changeset patch # User Augie Fackler # Date 1521056368 14400 # Node ID 0585337ea7876ecd1363e9ba926fd5174342ee50 # Parent 3d0178bf1039edf4e45aa38bef193486894e6795 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 diff -r 3d0178bf1039 -r 0585337ea787 i18n/hggettext --- 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)) diff -r 3d0178bf1039 -r 0585337ea787 mercurial/cffi/bdiffbuild.py --- 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; diff -r 3d0178bf1039 -r 0585337ea787 mercurial/cffi/mpatchbuild.py --- 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 { diff -r 3d0178bf1039 -r 0585337ea787 mercurial/posix.py --- 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 diff -r 3d0178bf1039 -r 0585337ea787 tests/f --- 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')