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 1NlaTk-00045x-Kr for garchives@archives.gentoo.org; Sun, 28 Feb 2010 04:10:04 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D4708E08EC; Sun, 28 Feb 2010 04:10:01 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 94FC5E08EC for ; Sun, 28 Feb 2010 04:10:01 +0000 (UTC) Received: from stork.gentoo.org (stork.gentoo.org [64.127.104.133]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTP id 325201B401F for ; Sun, 28 Feb 2010 04:10:01 +0000 (UTC) Received: from zmedico by stork.gentoo.org with local (Exim 4.69) (envelope-from ) id 1NlaTg-00068w-Fp for gentoo-commits@lists.gentoo.org; Sun, 28 Feb 2010 04:10:00 +0000 To: gentoo-commits@lists.gentoo.org From: "Zac Medico (zmedico)" Subject: [gentoo-commits] portage r15490 - in main/trunk/pym/portage: . util X-VCS-Repository: portage X-VCS-Revision: 15490 X-VCS-Files: main/trunk/pym/portage/util/mtimedb.py main/trunk/pym/portage/__init__.py main/trunk/pym/portage/_deprecated.py X-VCS-Directories: . util X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico Content-Type: text/plain; charset=UTF-8 Message-Id: Sender: Zac Medico Date: Sun, 28 Feb 2010 04:10:00 +0000 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: 5055c3ca-ae28-49ca-aca5-05de7f891cb6 X-Archives-Hash: f36afc53ff0b550c191684e37860e994 Author: zmedico Date: 2010-02-28 04:09:59 +0000 (Sun, 28 Feb 2010) New Revision: 15490 Added: main/trunk/pym/portage/util/mtimedb.py Modified: main/trunk/pym/portage/__init__.py main/trunk/pym/portage/_deprecated.py Log: Move the MtimeDB class to portage.util.mtimedb and deprecate the commit_m= timedb function. Modified: main/trunk/pym/portage/__init__.py =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- main/trunk/pym/portage/__init__.py 2010-02-28 03:42:22 UTC (rev 15489= ) +++ main/trunk/pym/portage/__init__.py 2010-02-28 04:09:59 UTC (rev 15490= ) @@ -131,12 +131,14 @@ 'portage.util.ExtractKernelVersion:ExtractKernelVersion', 'portage.util.listdir:cacheddir,listdir', 'portage.util.movefile:movefile', + 'portage.util.mtimedb:MtimeDB', 'portage.versions', 'portage.versions:best,catpkgsplit,catsplit,cpv_getkey,' + \ 'cpv_getkey@getCPFromCPV,endversion_keys,' + \ 'suffix_value@endversion,pkgcmp,pkgsplit,vercmp,ververify', 'portage.xpak', - 'portage._deprecated:dep_virtual,digestParseFile,getvirtuals,pkgmerge'= , + 'portage._deprecated:commit_mtimedb,dep_virtual,' + \ + 'digestParseFile,getvirtuals,pkgmerge', ) =20 import portage.const @@ -535,92 +537,18 @@ writemsg("\n\n", noiselevel=3D-1) return True =20 -def commit_mtimedb(mydict=3DNone, filename=3DNone): - if mydict is None: - global mtimedb - if "mtimedb" not in globals() or mtimedb is None: - return - mtimedb.commit() - return - if filename is None: - global mtimedbfile - filename =3D mtimedbfile - mydict["version"] =3D VERSION - d =3D {} # for full backward compat, pickle it as a plain dict object. - d.update(mydict) - try: - f =3D atomic_ofstream(filename, mode=3D'wb') - pickle.dump(d, f, protocol=3D2) - f.close() - portage.util.apply_secpass_permissions(filename, - uid=3Duid, gid=3Dportage_gid, mode=3D0o644) - except (IOError, OSError) as e: - pass - def portageexit(): - global uid,portage_gid,portdb,db - if secpass and os.environ.get("SANDBOX_ON") !=3D "1": + if secpass > 1 and os.environ.get("SANDBOX_ON") !=3D "1": close_portdbapi_caches() - commit_mtimedb() + try: + mtimedb + except NameError: + pass + else: + mtimedb.commit() =20 atexit_register(portageexit) =20 -class MtimeDB(dict): - def __init__(self, filename): - dict.__init__(self) - self.filename =3D filename - self._load(filename) - - def _load(self, filename): - try: - f =3D open(_unicode_encode(filename), 'rb') - mypickle =3D pickle.Unpickler(f) - try: - mypickle.find_global =3D None - except AttributeError: - # TODO: If py3k, override Unpickler.find_class(). - pass - d =3D mypickle.load() - f.close() - del f - except (IOError, OSError, EOFError, ValueError, pickle.UnpicklingError= ) as e: - if isinstance(e, pickle.UnpicklingError): - writemsg(_("!!! Error loading '%s': %s\n") % \ - (filename, str(e)), noiselevel=3D-1) - del e - d =3D {} - - if "old" in d: - d["updates"] =3D d["old"] - del d["old"] - if "cur" in d: - del d["cur"] - - d.setdefault("starttime", 0) - d.setdefault("version", "") - for k in ("info", "ldpath", "updates"): - d.setdefault(k, {}) - - mtimedbkeys =3D set(("info", "ldpath", "resume", "resume_backup", - "starttime", "updates", "version")) - - for k in list(d): - if k not in mtimedbkeys: - writemsg(_("Deleting invalid mtimedb key: %s\n") % str(k)) - del d[k] - self.update(d) - self._clean_data =3D copy.deepcopy(d) - - def commit(self): - if not self.filename: - return - d =3D {} - d.update(self) - # Only commit if the internal state has changed. - if d !=3D self._clean_data: - commit_mtimedb(mydict=3Dd, filename=3Dself.filename) - self._clean_data =3D copy.deepcopy(d) - def create_trees(config_root=3DNone, target_root=3DNone, trees=3DNone): if trees is None: trees =3D {} Modified: main/trunk/pym/portage/_deprecated.py =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- main/trunk/pym/portage/_deprecated.py 2010-02-28 03:42:22 UTC (rev 15= 489) +++ main/trunk/pym/portage/_deprecated.py 2010-02-28 04:09:59 UTC (rev 15= 490) @@ -16,6 +16,11 @@ from portage.manifest import Manifest from portage.util import writemsg, writemsg_stdout =20 +def commit_mtimedb(mydict=3DNone, filename=3DNone): + warnings.warn("portage.commit_mtimedb() is deprecated, " + \ + "use portage.mtimedb.commit() instead", + DeprecationWarning, stacklevel=3D2) + def digestParseFile(myfilename, mysettings=3DNone): """(filename) -- Parses a given file for entries matching: Added: main/trunk/pym/portage/util/mtimedb.py =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- main/trunk/pym/portage/util/mtimedb.py (rev 0= ) +++ main/trunk/pym/portage/util/mtimedb.py 2010-02-28 04:09:59 UTC (rev 1= 5490) @@ -0,0 +1,77 @@ +# Copyright 2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +__all__ =3D ['MtimeDB'] + +import copy + +from portage import pickle, VERSION, _unicode_encode +from portage.data import portage_gid, uid +from portage.localization import _ +from portage.util import apply_secpass_permissions, atomic_ofstream, wri= temsg + +class MtimeDB(dict): + def __init__(self, filename): + dict.__init__(self) + self.filename =3D filename + self._load(filename) + + def _load(self, filename): + try: + f =3D open(_unicode_encode(filename), 'rb') + mypickle =3D pickle.Unpickler(f) + try: + mypickle.find_global =3D None + except AttributeError: + # TODO: If py3k, override Unpickler.find_class(). + pass + d =3D mypickle.load() + f.close() + del f + except (IOError, OSError, EOFError, ValueError, pickle.UnpicklingError= ) as e: + if isinstance(e, pickle.UnpicklingError): + writemsg(_("!!! Error loading '%s': %s\n") % \ + (filename, str(e)), noiselevel=3D-1) + del e + d =3D {} + + if "old" in d: + d["updates"] =3D d["old"] + del d["old"] + if "cur" in d: + del d["cur"] + + d.setdefault("starttime", 0) + d.setdefault("version", "") + for k in ("info", "ldpath", "updates"): + d.setdefault(k, {}) + + mtimedbkeys =3D set(("info", "ldpath", "resume", "resume_backup", + "starttime", "updates", "version")) + + for k in list(d): + if k not in mtimedbkeys: + writemsg(_("Deleting invalid mtimedb key: %s\n") % str(k)) + del d[k] + self.update(d) + self._clean_data =3D copy.deepcopy(d) + + def commit(self): + if not self.filename: + return + d =3D {} + d.update(self) + # Only commit if the internal state has changed. + if d !=3D self._clean_data: + d["version"] =3D VERSION + try: + f =3D atomic_ofstream(self.filename, mode=3D'wb') + except EnvironmentError: + pass + else: + pickle.dump(d, f, protocol=3D2) + f.close() + apply_secpass_permissions(self.filename, + uid=3Duid, gid=3Dportage_gid, mode=3D0o644) + self._clean_data =3D copy.deepcopy(d) Property changes on: main/trunk/pym/portage/util/mtimedb.py ___________________________________________________________________ Added: svn:keywords + Id