summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi/virtual.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-05-13 01:36:25 -0700
committerZac Medico <zmedico@gentoo.org>2012-05-13 01:36:25 -0700
commitf31320b67c9f593a2a8592e1a4e547f5f641943a (patch)
treeb5fbe65ded8a1ffc75ccf5f80c50e0872ad6972a /pym/portage/dbapi/virtual.py
parent0903cf2a1544d970b286a3e7e1f3276daa4eab9c (diff)
downloadportage-f31320b67c9f593a2a8592e1a4e547f5f641943a.tar.gz
portage-f31320b67c9f593a2a8592e1a4e547f5f641943a.tar.bz2
portage-f31320b67c9f593a2a8592e1a4e547f5f641943a.zip
_pkg_str: add version attribute for comparisons
This attribute can be passed directly into vercmp, avoiding the need to generate this string many times.
Diffstat (limited to 'pym/portage/dbapi/virtual.py')
-rw-r--r--pym/portage/dbapi/virtual.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/portage/dbapi/virtual.py b/pym/portage/dbapi/virtual.py
index 84b6b9367..da15983ee 100644
--- a/pym/portage/dbapi/virtual.py
+++ b/pym/portage/dbapi/virtual.py
@@ -4,7 +4,7 @@
from portage.dbapi import dbapi
from portage.dbapi.dep_expand import dep_expand
-from portage import cpv_getkey
+from portage.versions import cpv_getkey, _pkg_str
class fakedbapi(dbapi):
"""A fake dbapi that allows consumers to inject/remove packages to/from it
@@ -74,7 +74,13 @@ class fakedbapi(dbapi):
@param metadata: dict
"""
self._clear_cache()
- mycp = cpv_getkey(mycpv)
+ if not hasattr(mycpv, 'cp'):
+ if metadata is None:
+ mycpv = _pkg_str(mycpv)
+ else:
+ mycpv = _pkg_str(mycpv, slot=metadata.get('SLOT'),
+ repo=metadata.get('repository'))
+ mycp = mycpv.cp
self.cpvdict[mycpv] = metadata
myslot = None
if self._exclusive_slots and metadata: