From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Qwhpe-0001ur-Vm for garchives@archives.gentoo.org; Thu, 25 Aug 2011 21:51:27 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id F0D2421C071; Thu, 25 Aug 2011 21:51:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id A8E2121C071 for ; Thu, 25 Aug 2011 21:51:19 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1A2D71B401E for ; Thu, 25 Aug 2011 21:51:19 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 6D59880040 for ; Thu, 25 Aug 2011 21:51:18 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <5a24743e55acedcbae06b97401c6e39b0d5faa98.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, bin/, pym/portage/elog/, pym/portage/util/, ... X-VCS-Repository: proj/portage X-VCS-Files: bin/repoman pym/_emerge/EbuildPhase.py pym/_emerge/PollScheduler.py pym/_emerge/SpawnProcess.py pym/portage/elog/messages.py pym/portage/package/ebuild/prepare_build_dirs.py pym/portage/util/ExtractKernelVersion.py X-VCS-Directories: pym/portage/package/ebuild/ bin/ pym/portage/elog/ pym/portage/util/ pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 5a24743e55acedcbae06b97401c6e39b0d5faa98 Date: Thu, 25 Aug 2011 21:51:18 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 14cd8f8d3b435ae8be120c00c6d40b42 commit: 5a24743e55acedcbae06b97401c6e39b0d5faa98 Author: Zac Medico gentoo org> AuthorDate: Thu Aug 25 21:48:45 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Thu Aug 25 21:50:39 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D5a24743e python3.2 fixes: ResourceWarning: unclosed file --- bin/repoman | 9 +++++++-- pym/_emerge/EbuildPhase.py | 7 +++++-- pym/_emerge/PollScheduler.py | 3 +++ pym/_emerge/SpawnProcess.py | 9 ++++++++- pym/portage/elog/messages.py | 6 ++++-- pym/portage/package/ebuild/prepare_build_dirs.py | 4 ++++ pym/portage/util/ExtractKernelVersion.py | 2 ++ 7 files changed, 33 insertions(+), 7 deletions(-) diff --git a/bin/repoman b/bin/repoman index 10f603e..e0494d9 100755 --- a/bin/repoman +++ b/bin/repoman @@ -1228,11 +1228,13 @@ for x in scanlist: =20 if not (y in ("ChangeLog", "metadata.xml") or y.endswith(".ebuild")): continue + f =3D None try: line =3D 1 - for l in io.open(_unicode_encode(os.path.join(checkdir, y), + f =3D io.open(_unicode_encode(os.path.join(checkdir, y), encoding=3D_encodings['fs'], errors=3D'strict'), - mode=3D'r', encoding=3D_encodings['repo.content']): + mode=3D'r', encoding=3D_encodings['repo.content']) + for l in f: line +=3D1 except UnicodeDecodeError as ue: stats["file.UTF8"] +=3D 1 @@ -1242,6 +1244,9 @@ for x in scanlist: if l2 !=3D 0: s =3D s[s.rfind("\n") + 1:] fails["file.UTF8"].append("%s/%s: line %i, just after: '%s'" % (check= dir, y, line, s)) + finally: + if f is not None: + f.close() =20 if vcs in ("git", "hg") and check_ebuild_notadded: if vcs =3D=3D "git": diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index f53570a..ed0be0b 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -273,13 +273,15 @@ class EbuildPhase(CompositeTask): temp_file =3D open(_unicode_encode(temp_log, encoding=3D_encodings['fs'], errors=3D'strict'), 'rb') =20 - log_file =3D self._open_log(log_path) + log_file, log_file_real =3D self._open_log(log_path) =20 for line in temp_file: log_file.write(line) =20 temp_file.close() log_file.close() + if log_file_real is not log_file: + log_file_real.close() os.unlink(temp_log) =20 def _open_log(self, log_path): @@ -287,11 +289,12 @@ class EbuildPhase(CompositeTask): f =3D open(_unicode_encode(log_path, encoding=3D_encodings['fs'], errors=3D'strict'), mode=3D'ab') + f_real =3D f =20 if log_path.endswith('.gz'): f =3D gzip.GzipFile(filename=3D'', mode=3D'ab', fileobj=3Df) =20 - return f + return (f, f_real) =20 def _die_hooks(self): self.returncode =3D None diff --git a/pym/_emerge/PollScheduler.py b/pym/_emerge/PollScheduler.py index a2b5c24..fd9dfc0 100644 --- a/pym/_emerge/PollScheduler.py +++ b/pym/_emerge/PollScheduler.py @@ -333,6 +333,7 @@ class PollScheduler(object): f =3D open(_unicode_encode(log_path, encoding=3D_encodings['fs'], errors=3D'strict'), mode=3D'ab') + f_real =3D f except IOError as e: if e.errno not in (errno.ENOENT, errno.ESTALE): raise @@ -349,6 +350,8 @@ class PollScheduler(object): =20 f.write(_unicode_encode(msg)) f.close() + if f_real is not f: + f_real.close() =20 _can_poll_device =3D None =20 diff --git a/pym/_emerge/SpawnProcess.py b/pym/_emerge/SpawnProcess.py index 099407e..065146c 100644 --- a/pym/_emerge/SpawnProcess.py +++ b/pym/_emerge/SpawnProcess.py @@ -26,7 +26,7 @@ class SpawnProcess(SubProcess): "path_lookup", "pre_exec") =20 __slots__ =3D ("args",) + \ - _spawn_kwarg_names + ("_selinux_type",) + _spawn_kwarg_names + ("_log_file_real", "_selinux_type",) =20 _file_names =3D ("log", "process", "stdout") _files_dict =3D slot_dict_class(_file_names, prefix=3D"") @@ -84,6 +84,7 @@ class SpawnProcess(SubProcess): files.log =3D open(_unicode_encode(logfile, encoding=3D_encodings['fs'], errors=3D'strict'), mode=3D'ab') if logfile.endswith('.gz'): + self._log_file_real =3D files.log files.log =3D gzip.GzipFile(filename=3D'', mode=3D'ab', fileobj=3Dfiles.log) =20 @@ -238,3 +239,9 @@ class SpawnProcess(SubProcess): =20 self._unregister_if_appropriate(event) =20 + def _unregister(self): + super(SpawnProcess, self)._unregister() + if self._log_file_real is not None: + # Avoid "ResourceWarning: unclosed file" since python 3.2. + self._log_file_real.close() + self._log_file_real =3D None diff --git a/pym/portage/elog/messages.py b/pym/portage/elog/messages.py index 6c1580a..50e0ab1 100644 --- a/pym/portage/elog/messages.py +++ b/pym/portage/elog/messages.py @@ -43,9 +43,10 @@ def collect_ebuild_messages(path): logentries[msgfunction] =3D [] lastmsgtype =3D None msgcontent =3D [] - for l in io.open(_unicode_encode(filename, + f =3D io.open(_unicode_encode(filename, encoding=3D_encodings['fs'], errors=3D'strict'), - mode=3D'r', encoding=3D_encodings['repo.content'], errors=3D'replace'= ): + mode=3D'r', encoding=3D_encodings['repo.content'], errors=3D'replace'= ) + for l in f: if not l: continue try: @@ -65,6 +66,7 @@ def collect_ebuild_messages(path): logentries[msgfunction].append((lastmsgtype, msgcontent)) msgcontent =3D [msg] lastmsgtype =3D msgtype + f.close() if msgcontent: logentries[msgfunction].append((lastmsgtype, msgcontent)) =20 diff --git a/pym/portage/package/ebuild/prepare_build_dirs.py b/pym/porta= ge/package/ebuild/prepare_build_dirs.py index 12c80ed..6de486a 100644 --- a/pym/portage/package/ebuild/prepare_build_dirs.py +++ b/pym/portage/package/ebuild/prepare_build_dirs.py @@ -119,11 +119,13 @@ def _adjust_perms_msg(settings, msg): background =3D settings.get("PORTAGE_BACKGROUND") =3D=3D "1" log_path =3D settings.get("PORTAGE_LOG_FILE") log_file =3D None + log_file_real =3D None =20 if background and log_path is not None: try: log_file =3D open(_unicode_encode(log_path, encoding=3D_encodings['fs'], errors=3D'strict'), mode=3D'ab') + log_file_real =3D log_file except IOError: def write(msg): pass @@ -140,6 +142,8 @@ def _adjust_perms_msg(settings, msg): finally: if log_file is not None: log_file.close() + if log_file_real is not log_file: + log_file_real.close() =20 def _prepare_features_dirs(mysettings): =20 diff --git a/pym/portage/util/ExtractKernelVersion.py b/pym/portage/util/= ExtractKernelVersion.py index 5cb9747..49957f5 100644 --- a/pym/portage/util/ExtractKernelVersion.py +++ b/pym/portage/util/ExtractKernelVersion.py @@ -37,6 +37,8 @@ def ExtractKernelVersion(base_dir): return (None, str(details)) except IOError as details: return (None, str(details)) + finally: + f.close() =20 lines =3D [l.strip() for l in lines] =20