From: Fabian Groffen Date: Mon, 21 Sep 2009 17:07:18 +0000 (-0000) Subject: Merged from trunk -r14284:14288 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=caef68e897209ae5fa3cf519efeed68d700a5a39;p=portage.git Merged from trunk -r14284:14288 | 14285 | Fix config.setinst() to add Atom instances to the provider | | zmedico | lists instead of plain str. | | 14286 | Add isinstance(mydep, Atom) checks to the dep_* functions | | zmedico | since we don't use a metaclass to do that anymore (due to | | | performance). | | 14288 | Bug #285637 - Fix NameError exception triggered by | | zmedico | InvalidAtom in grabfile_package(). | svn path=/main/branches/prefix/; revision=14334 --- diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index c9939c24b..be76389a0 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -3198,7 +3198,7 @@ class config(object): virts = flatten(portage.dep.use_reduce(portage.dep.paren_reduce(provides), uselist=myuse.split())) modified = False - cp = dep_getkey(mycpv) + cp = dep.Atom(cpv_getkey(mycpv)) for virt in virts: virt = dep_getkey(virt) providers = self.virtuals.get(virt) diff --git a/pym/portage/dep.py b/pym/portage/dep.py index bd576b768..66557c0c6 100644 --- a/pym/portage/dep.py +++ b/pym/portage/dep.py @@ -683,6 +683,8 @@ def get_operator(mydep): @return: The operator. One of: '~', '=', '>', '<', '=*', '>=', or '<=' """ + if isinstance(mydep, Atom): + return mydep.operator try: return Atom(mydep).operator except InvalidAtom: @@ -724,7 +726,8 @@ def dep_getcpv(mydep): @rtype: String @return: The depstring with the operator removed """ - + if isinstance(mydep, Atom): + return mydep.cpv try: return Atom(mydep).cpv except InvalidAtom: @@ -885,7 +888,8 @@ def isvalidatom(atom, allow_blockers=False): 2) True if the atom is valid """ try: - atom = Atom(atom) + if not isinstance(atom, Atom): + atom = Atom(atom) if not allow_blockers and atom.blocker: return False return True @@ -910,7 +914,9 @@ def isjustname(mypkg): 2) True if it is """ try: - return mypkg == Atom(mypkg).cp + if not isinstance(mypkg, Atom): + mypkg = Atom(mypkg) + return mypkg == mypkg.cp except InvalidAtom: pass @@ -938,7 +944,9 @@ def isspecific(mypkg): 2) True if it is """ try: - return mypkg != Atom(mypkg).cp + if not isinstance(mypkg, Atom): + mypkg = Atom(mypkg) + return mypkg != mypkg.cp except InvalidAtom: pass @@ -956,9 +964,10 @@ def dep_getkey(mydep): @param mydep: The depstring to retrieve the category/package-name of @type mydep: String @rtype: String - @return: The package category/package-version + @return: The package category/package-name """ - + if isinstance(mydep, Atom): + return mydep.cp try: return Atom(mydep).cp except InvalidAtom: diff --git a/pym/portage/util.py b/pym/portage/util.py index 0c84d6310..955fa0396 100644 --- a/pym/portage/util.py +++ b/pym/portage/util.py @@ -319,7 +319,7 @@ def grabfile_package(myfilename, compatlevel=0, recursive=0): try: pkg = Atom(pkg) except InvalidAtom: - writemsg(_("--- Invalid atom in %s: %s\n") % (myfilename, pkgs[x]), + writemsg(_("--- Invalid atom in %s: %s\n") % (myfilename, pkg), noiselevel=-1) else: if pkg_orig == str(pkg):