From 39bd609e0564a186bcf6c2fd6669e33cbbc7002f Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Mon, 22 Feb 2010 12:58:01 +0000 Subject: [PATCH] Merged from trunk -r15397:15407 | 15398 | Use a valid atom in the dep_getkey docstring. | | zmedico | | | 15399 | Use Atom.cp instead of dep_getkey. | | zmedico | | | 15400 | Use Atom.cp instead of dep_getkey. | | zmedico | | | 15401 | Use Atom.cp instead of dep_getkey. | | zmedico | | | 15402 | Remove deprecated key_expand function and | | zmedico | config.load_infodir method. | | 15403 | Add DeprecationWarning to dep_virtual function. | | zmedico | | | 15404 | Remove deprecated methods that call removed key_expand | | zmedico | function. | | 15405 | Add stacklevel=2 to warnings.warn() calls. | | zmedico | | | 15406 | Add stacklevel=2 to warnings.warn calls. | | zmedico | | | 15407 | Use a frozenset for use inside binarytree._eval_use_flags(). | | zmedico | | svn path=/main/branches/prefix/; revision=15431 --- pym/_emerge/depgraph.py | 11 +++---- pym/portage/__init__.py | 44 +++++-------------------- pym/portage/dbapi/bintree.py | 4 +-- pym/portage/dbapi/porttree.py | 18 ++-------- pym/portage/dbapi/vartree.py | 62 ++--------------------------------- pym/portage/dep.py | 2 +- pym/portage/sets/base.py | 9 +++-- pym/portage/sets/files.py | 4 +-- 8 files changed, 28 insertions(+), 126 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index ceb3062ad..a90d0a708 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1819,8 +1819,7 @@ class depgraph(object): pprovided_match = False for virt_choice in virtuals.get(atom.cp, []): expanded_atom = portage.dep.Atom( - atom.replace(atom.cp, - portage.dep_getkey(virt_choice), 1)) + atom.replace(atom.cp, virt_choice.cp, 1)) pprovided = pprovideddict.get(expanded_atom.cp) if pprovided and \ portage.match_from_list(expanded_atom, pprovided): @@ -3004,10 +3003,8 @@ class depgraph(object): if provider_virtual: atoms = [] for provider_entry in virtuals[blocker.cp]: - provider_cp = \ - portage.dep_getkey(provider_entry) atoms.append(Atom(blocker.atom.replace( - blocker.cp, provider_cp))) + blocker.cp, provider_entry.cp, 1))) else: atoms = [blocker.atom] @@ -5352,14 +5349,14 @@ class _dep_check_composite_db(portage.dbapi): if len(expanded_atoms) > 1: non_virtual_atoms = [] for x in expanded_atoms: - if not portage.dep_getkey(x).startswith("virtual/"): + if not x.cp.startswith("virtual/"): non_virtual_atoms.append(x) if len(non_virtual_atoms) == 1: expanded_atoms = non_virtual_atoms if len(expanded_atoms) > 1: # compatible with portage.cpv_expand() raise portage.exception.AmbiguousPackageName( - [portage.dep_getkey(x) for x in expanded_atoms]) + [x.cp for x in expanded_atoms]) if expanded_atoms: atom = expanded_atoms[0] else: diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 24bef0146..c2c8e142b 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -2463,11 +2463,6 @@ class config(object): self.useforce_list, incremental=True)) self.regenerate(use_cache=use_cache) - def load_infodir(self,infodir): - warnings.warn("portage.config.load_infodir() is deprecated", - DeprecationWarning) - return 1 - class _lazy_vars(object): __slots__ = ('built_use', 'settings', 'values') @@ -3298,7 +3293,10 @@ class config(object): modified = False cp = dep.Atom(cpv_getkey(mycpv)) for virt in virts: - virt = dep_getkey(virt) + try: + virt = dep.Atom(virt).cp + except exception.InvalidAtom: + continue providers = self.virtuals.get(virt) if providers and cp in providers: continue @@ -3704,7 +3702,7 @@ class config(object): def has_key(self,mykey): warnings.warn("portage.config.has_key() is deprecated, " "use the in operator instead", - DeprecationWarning) + DeprecationWarning, stacklevel=2) return mykey in self def __contains__(self, mykey): @@ -7793,6 +7791,8 @@ def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None, def dep_virtual(mysplit, mysettings): "Does virtual dependency conversion" + warnings.warn("portage.dep_virtual() is deprecated", + DeprecationWarning, stacklevel=2) newsplit=[] myvirtuals = mysettings.getvirtuals() for x in mysplit: @@ -8478,7 +8478,7 @@ def cpv_getkey(mycpv): return mysplit[0] + '/' + mysplit[1] warnings.warn("portage.cpv_getkey() called with invalid cpv: '%s'" \ - % (mycpv,), DeprecationWarning) + % (mycpv,), DeprecationWarning, stacklevel=2) myslash = mycpv.split("/", 1) mysplit = versions._pkgsplit(myslash[-1]) @@ -8492,32 +8492,6 @@ def cpv_getkey(mycpv): getCPFromCPV = cpv_getkey -def key_expand(mykey, mydb=None, use_cache=1, settings=None): - """This is deprecated because it just returns the first match instead of - raising AmbiguousPackageName like cpv_expand does.""" - warnings.warn("portage.key_expand() is deprecated", DeprecationWarning) - mysplit=mykey.split("/") - if settings is None: - settings = globals()["settings"] - virts = settings.getvirtuals("/") - virts_p = settings.get_virts_p("/") - if len(mysplit)==1: - if hasattr(mydb, "cp_list"): - for x in mydb.categories: - if mydb.cp_list(x+"/"+mykey,use_cache=use_cache): - return dep.Atom(x + "/" + mykey) - if mykey in virts_p: - return(virts_p[mykey][0]) - return dep.Atom("null/" + mykey) - elif mydb: - if hasattr(mydb, "cp_list"): - if not mydb.cp_list(mykey, use_cache=use_cache) and \ - virts and mykey in virts: - return virts[mykey][0] - if not isinstance(mykey, dep.Atom): - mykey = dep.Atom(mykey) - return mykey - def cpv_expand(mycpv, mydb=None, use_cache=1, settings=None): """Given a string (packagename or virtual) expand it into a valid cat/package string. Virtuals use the mydb to determine which provided @@ -8549,7 +8523,7 @@ def cpv_expand(mycpv, mydb=None, use_cache=1, settings=None): # it may be necessary to remove the operator and # version from the atom before it is passed into # dbapi.cp_list(). - if mydb.cp_list(dep_getkey(vkey), use_cache=use_cache): + if mydb.cp_list(vkey.cp): mykey = str(vkey) writemsg(_("virts chosen: %s\n") % (mykey), 1) break diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py index 393d59d58..8161167a4 100644 --- a/pym/portage/dbapi/bintree.py +++ b/pym/portage/dbapi/bintree.py @@ -460,7 +460,7 @@ class binarytree(object): warnings.warn( "portage.dbapi.bintree.binarytree.populate(): " + \ "getbinpkgsonly parameter is deprecated", - DeprecationWarning) + DeprecationWarning, stacklevel=2) if self._populating: return @@ -1049,7 +1049,7 @@ class binarytree(object): return False def _eval_use_flags(self, cpv, metadata): - use = metadata["USE"].split() + use = frozenset(metadata["USE"].split()) raw_use = use iuse = set(f.lstrip("-+") for f in metadata["IUSE"].split()) use = [f for f in use if f in iuse] diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index a4cf16fc0..7cae96796 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -25,7 +25,7 @@ from portage.localization import _ from portage.manifest import Manifest from portage import eclass_cache, auxdbkeys, doebuild, flatten, \ - listdir, dep_expand, eapi_is_supported, key_expand, dep_check, \ + listdir, dep_expand, eapi_is_supported, dep_check, \ _eapi_is_deprecated from portage import os from portage import _encodings @@ -171,7 +171,7 @@ class portdbapi(dbapi): "portage.dbapi.porttree.portdbapi" + \ " constructor is now unused. Use " + \ "mysettings['PORTDIR'] instead.", - DeprecationWarning) + DeprecationWarning, stacklevel=2) # This is strictly for use in aux_get() doebuild calls when metadata # is generated by the depend phase. It's safest to use a clone for @@ -1227,20 +1227,6 @@ class portagetree(object): psplit = pkgsplit(mysplit[1]) return "/".join([self.portroot, mysplit[0], psplit[0], mysplit[1]])+".ebuild" - def resolve_specific(self, myspec): - warnings.warn( - "portage.dbapi.porttree.portagetree.resolve_specific() is deprecated", - DeprecationWarning) - cps = catpkgsplit(myspec) - if not cps: - return None - mykey = key_expand(cps[0]+"/"+cps[1], mydb=self.dbapi, - settings=self.settings) - mykey = mykey + "-" + cps[2] - if cps[3] != "r0": - mykey = mykey + "-" + cps[3] - return mykey - def depcheck(self, mycheck, use="yes", myusesplit=None): return dep_check(mycheck, self.dbapi, use=use, myuse=myusesplit) diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 0c79d333c..ce38c2892 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -33,7 +33,7 @@ from portage.exception import CommandNotFound, \ FileNotFound, PermissionDenied, UnsupportedAPIException from portage.localization import _ -from portage import listdir, dep_expand, digraph, flatten, key_expand, \ +from portage import listdir, dep_expand, digraph, flatten, \ doebuild_environment, doebuild, env_update, prepare_build_dirs, \ abssymlink, movefile, _movefile, bsd_chflags, cpv_getkey @@ -2689,7 +2689,7 @@ class vartree(object): self.root = root[:] if settings is None: from portage import settings - self.settings = settings # for key_expand calls + self.settings = settings if categories is None: categories = settings.categories self.dbapi = vardbapi(self.root, categories=categories, @@ -2774,50 +2774,10 @@ class vartree(object): masked package for nodes in this nodes list.""" return self.dbapi.cp_all() - def exists_specific_cat(self, cpv, use_cache=1): - warnings.warn( - "portage.dbapi.vartree.vartree.exists_specific_cat() is deprecated", - DeprecationWarning) - cpv = key_expand(cpv, mydb=self.dbapi, use_cache=use_cache, - settings=self.settings) - a = catpkgsplit(cpv) - if not a: - return 0 - mylist = listdir(self.getpath(a[0]), EmptyOnError=1) - for x in mylist: - b = pkgsplit(x) - if not b: - self.dbapi.invalidentry(self.getpath(a[0], filename=x)) - continue - if a[1] == b[0]: - return 1 - return 0 - def getebuildpath(self, fullpackage): cat, package = catsplit(fullpackage) return self.getpath(fullpackage, filename=package+".ebuild") - def getnode(self, mykey, use_cache=1): - warnings.warn( - "portage.dbapi.vartree.vartree.getnode() is deprecated", - DeprecationWarning) - mykey = key_expand(mykey, mydb=self.dbapi, use_cache=use_cache, - settings=self.settings) - if not mykey: - return [] - mysplit = catsplit(mykey) - mydirlist = listdir(self.getpath(mysplit[0]),EmptyOnError=1) - returnme = [] - for x in mydirlist: - mypsplit = pkgsplit(x) - if not mypsplit: - self.dbapi.invalidentry(self.getpath(mysplit[0], filename=x)) - continue - if mypsplit[0] == mysplit[1]: - appendme = [mysplit[0]+"/"+x, [mysplit[0], mypsplit[0], mypsplit[1], mypsplit[2]]] - returnme.append(appendme) - return returnme - def getslot(self, mycatpkg): "Get a slot for a catpkg; assume it exists." try: @@ -2825,24 +2785,6 @@ class vartree(object): except KeyError: return "" - def hasnode(self, mykey, use_cache): - """Does the particular node (cat/pkg key) exist?""" - warnings.warn( - "portage.dbapi.vartree.vartree.hadnode() is deprecated", - DeprecationWarning) - mykey = key_expand(mykey, mydb=self.dbapi, use_cache=use_cache, - settings=self.settings) - mysplit = catsplit(mykey) - mydirlist = listdir(self.getpath(mysplit[0]), EmptyOnError=1) - for x in mydirlist: - mypsplit = pkgsplit(x) - if not mypsplit: - self.dbapi.invalidentry(self.getpath(mysplit[0], filename=x)) - continue - if mypsplit[0] == mysplit[1]: - return 1 - return 0 - def populate(self): self.populated=1 diff --git a/pym/portage/dep.py b/pym/portage/dep.py index c0abdcbde..e2eeb6d5b 100644 --- a/pym/portage/dep.py +++ b/pym/portage/dep.py @@ -923,7 +923,7 @@ def dep_getkey(mydep): Return the category/package-name of a depstring. Example usage: - >>> dep_getkey('media-libs/test-3.0') + >>> dep_getkey('=media-libs/test-3.0') 'media-libs/test' @param mydep: The depstring to retrieve the category/package-name of diff --git a/pym/portage/sets/base.py b/pym/portage/sets/base.py index 216c8cc16..0d88d0efb 100644 --- a/pym/portage/sets/base.py +++ b/pym/portage/sets/base.py @@ -5,7 +5,7 @@ import sys from portage import cpv_getkey, flatten from portage.dep import Atom, isvalidatom, match_from_list, \ - best_match_to_list, dep_getkey, use_reduce, paren_reduce + best_match_to_list, use_reduce, paren_reduce from portage.exception import InvalidAtom if sys.hexversion >= 0x3000000: @@ -153,7 +153,10 @@ class PackageSet(object): return provides = provides.split() for provide in provides: - provided_cp = dep_getkey(provide) + try: + provided_cp = Atom(provide).cp + except InvalidAtom: + continue atoms = self._atommap.get(provided_cp) if atoms: for atom in atoms: @@ -201,7 +204,7 @@ class EditablePackageSet(PackageSet): def removePackageAtoms(self, cp): self._load() for a in list(self._atoms): - if dep_getkey(a) == cp: + if a.cp == cp: self.remove(a) self.write() diff --git a/pym/portage/sets/files.py b/pym/portage/sets/files.py index eac98d6ae..de606d675 100644 --- a/pym/portage/sets/files.py +++ b/pym/portage/sets/files.py @@ -18,7 +18,7 @@ from portage.sets.base import PackageSet, EditablePackageSet from portage.sets import SetConfigError, SETPREFIX, get_boolean from portage.env.loaders import ItemFileLoader, KeyListFileLoader from portage.env.validators import ValidAtomValidator -from portage import dep_getkey, cpv_getkey +from portage import cpv_getkey __all__ = ["StaticFileSet", "ConfigFileSet", "WorldSelectedSet"] @@ -304,7 +304,7 @@ class WorldSelectedSet(EditablePackageSet): mykey = cpv_getkey(cpv) newworldlist = [] for x in worldlist: - if dep_getkey(x) == mykey: + if x.cp == mykey: matches = vardb.match(x, use_cache=0) if not matches: #zap our world entry -- 2.26.2