Add isinstance(mydep, Atom) checks to the dep_* functions since we don't use a
metaclass to do that anymore (due to performance).
svn path=/main/trunk/; revision=14286
diff --git a/pym/portage/dep.py b/pym/portage/dep.py
index bd576b7..66557c0 100644
--- a/pym/portage/dep.py
+++ b/pym/portage/dep.py
@@ -683,6 +683,8 @@
@return: The operator. One of:
'~', '=', '>', '<', '=*', '>=', or '<='
"""
+ if isinstance(mydep, Atom):
+ return mydep.operator
try:
return Atom(mydep).operator
except InvalidAtom:
@@ -724,7 +726,8 @@
@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 @@
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 @@
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 @@
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 @@
@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: