diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2018-12-20 17:00:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-20 17:00:14 (GMT) |
commit | c5d5dfdb223efb0e668e3f317d31b8b70ae96aa6 (patch) | |
tree | 75d656ef90a71f12cdf8b9cdbbaeaf3b4c341156 /Lib/distutils/command | |
parent | 71f82a2f2085464f5ec99c16bce57bd1631733bd (diff) | |
download | cpython-c5d5dfdb223efb0e668e3f317d31b8b70ae96aa6.zip cpython-c5d5dfdb223efb0e668e3f317d31b8b70ae96aa6.tar.gz cpython-c5d5dfdb223efb0e668e3f317d31b8b70ae96aa6.tar.bz2 |
bpo-22831: Use "with" to avoid possible fd leaks in distutils. (GH-10921)
Diffstat (limited to 'Lib/distutils/command')
-rw-r--r-- | Lib/distutils/command/bdist_msi.py | 24 | ||||
-rw-r--r-- | Lib/distutils/command/config.py | 36 | ||||
-rw-r--r-- | Lib/distutils/command/sdist.py | 15 |
3 files changed, 36 insertions, 39 deletions
diff --git a/Lib/distutils/command/bdist_msi.py b/Lib/distutils/command/bdist_msi.py index 80104c3..f335a34 100644 --- a/Lib/distutils/command/bdist_msi.py +++ b/Lib/distutils/command/bdist_msi.py @@ -390,18 +390,18 @@ class bdist_msi(Command): # entries for each version as the above code does if self.pre_install_script: scriptfn = os.path.join(self.bdist_dir, "preinstall.bat") - f = open(scriptfn, "w") - # The batch file will be executed with [PYTHON], so that %1 - # is the path to the Python interpreter; %0 will be the path - # of the batch file. - # rem =""" - # %1 %0 - # exit - # """ - # <actual script> - f.write('rem ="""\n%1 %0\nexit\n"""\n') - f.write(open(self.pre_install_script).read()) - f.close() + with open(scriptfn, "w") as f: + # The batch file will be executed with [PYTHON], so that %1 + # is the path to the Python interpreter; %0 will be the path + # of the batch file. + # rem =""" + # %1 %0 + # exit + # """ + # <actual script> + f.write('rem ="""\n%1 %0\nexit\n"""\n') + with open(self.pre_install_script) as fin: + f.write(fin.read()) add_data(self.db, "Binary", [("PreInstall", msilib.Binary(scriptfn)) ]) diff --git a/Lib/distutils/command/config.py b/Lib/distutils/command/config.py index 4ae153d..f511b88 100644 --- a/Lib/distutils/command/config.py +++ b/Lib/distutils/command/config.py @@ -106,15 +106,14 @@ class config(Command): def _gen_temp_sourcefile(self, body, headers, lang): filename = "_configtest" + LANG_EXT[lang] - file = open(filename, "w") - if headers: - for header in headers: - file.write("#include <%s>\n" % header) - file.write("\n") - file.write(body) - if body[-1] != "\n": - file.write("\n") - file.close() + with open(filename, "w") as file: + if headers: + for header in headers: + file.write("#include <%s>\n" % header) + file.write("\n") + file.write(body) + if body[-1] != "\n": + file.write("\n") return filename def _preprocess(self, body, headers, include_dirs, lang): @@ -203,17 +202,16 @@ class config(Command): if isinstance(pattern, str): pattern = re.compile(pattern) - file = open(out) - match = False - while True: - line = file.readline() - if line == '': - break - if pattern.search(line): - match = True - break + with open(out) as file: + match = False + while True: + line = file.readline() + if line == '': + break + if pattern.search(line): + match = True + break - file.close() self._clean() return match diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py index 52eaa15..b4996fc 100644 --- a/Lib/distutils/command/sdist.py +++ b/Lib/distutils/command/sdist.py @@ -407,14 +407,13 @@ class sdist(Command): distribution. """ log.info("reading manifest file '%s'", self.manifest) - manifest = open(self.manifest) - for line in manifest: - # ignore comments and blank lines - line = line.strip() - if line.startswith('#') or not line: - continue - self.filelist.append(line) - manifest.close() + with open(self.manifest) as manifest: + for line in manifest: + # ignore comments and blank lines + line = line.strip() + if line.startswith('#') or not line: + continue + self.filelist.append(line) def make_release_tree(self, base_dir, files): """Create the directory tree that will become the source |