summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/h2py.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2019-03-30 06:33:02 (GMT)
committerGitHub <noreply@github.com>2019-03-30 06:33:02 (GMT)
commit172bb39452ae8b3ccdf5d1f23ead46f44200cd49 (patch)
tree5e1effbca3664b839a81eb7a7d62fa4974cfbfb1 /Tools/scripts/h2py.py
parentafbb7a371fb44edc731344eab5b474ad8f7b57d7 (diff)
downloadcpython-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-xTools/scripts/h2py.py39
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)