diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2019-03-30 06:33:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-30 06:33:02 (GMT) |
commit | 172bb39452ae8b3ccdf5d1f23ead46f44200cd49 (patch) | |
tree | 5e1effbca3664b839a81eb7a7d62fa4974cfbfb1 /Tools/scripts/h2py.py | |
parent | afbb7a371fb44edc731344eab5b474ad8f7b57d7 (diff) | |
download | cpython-172bb39452ae8b3ccdf5d1f23ead46f44200cd49.zip cpython-172bb39452ae8b3ccdf5d1f23ead46f44200cd49.tar.gz cpython-172bb39452ae8b3ccdf5d1f23ead46f44200cd49.tar.bz2 |
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927)
Diffstat (limited to 'Tools/scripts/h2py.py')
-rwxr-xr-x | Tools/scripts/h2py.py | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py index 4363c0c..ea37c04 100755 --- a/Tools/scripts/h2py.py +++ b/Tools/scripts/h2py.py @@ -69,23 +69,21 @@ def main(): sys.stdout.write('# Generated by h2py from stdin\n') process(sys.stdin, sys.stdout) else: - fp = open(filename, 'r') - outfile = os.path.basename(filename) - i = outfile.rfind('.') - if i > 0: outfile = outfile[:i] - modname = outfile.upper() - outfile = modname + '.py' - outfp = open(outfile, 'w') - outfp.write('# Generated by h2py from %s\n' % filename) - filedict = {} - for dir in searchdirs: - if filename[:len(dir)] == dir: - filedict[filename[len(dir)+1:]] = None # no '/' trailing - importable[filename[len(dir)+1:]] = modname - break - process(fp, outfp) - outfp.close() - fp.close() + with open(filename) as fp: + outfile = os.path.basename(filename) + i = outfile.rfind('.') + if i > 0: outfile = outfile[:i] + modname = outfile.upper() + outfile = modname + '.py' + with open(outfile, 'w') as outfp: + outfp.write('# Generated by h2py from %s\n' % filename) + filedict = {} + for dir in searchdirs: + if filename[:len(dir)] == dir: + filedict[filename[len(dir)+1:]] = None # no '/' trailing + importable[filename[len(dir)+1:]] = modname + break + process(fp, outfp) def pytify(body): # replace ignored patterns by spaces @@ -161,9 +159,10 @@ def process(fp, outfp, env = {}): except IOError: pass if inclfp: - outfp.write( - '\n# Included from %s\n' % filename) - process(inclfp, outfp, env) + with inclfp: + outfp.write( + '\n# Included from %s\n' % filename) + process(inclfp, outfp, env) else: sys.stderr.write('Warning - could not find file %s\n' % filename) |