summaryrefslogtreecommitdiffstats
path: root/pym/portage
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-21 02:20:28 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-21 02:20:28 +0000
commit939adf4ce1595116a0daef098f5cf303ced8d7e3 (patch)
tree10877367934d504d650885a97ca3b08accb11e3a /pym/portage
parentfca57996027dfe24aacd90ebf64806bbcd67da2e (diff)
downloadportage-939adf4ce1595116a0daef098f5cf303ced8d7e3.tar.gz
portage-939adf4ce1595116a0daef098f5cf303ced8d7e3.tar.bz2
portage-939adf4ce1595116a0daef098f5cf303ced8d7e3.zip
For --depclean and --prune, eliminate duplicate graph creation code by re-using
the depgraph class to do it. The depgraph class was used in the past for this purpose but back then it didn't handle USE flags correctly for installed packages. Now it works fine. svn path=/main/trunk/; revision=11152
Diffstat (limited to 'pym/portage')
-rw-r--r--pym/portage/__init__.py3
-rw-r--r--pym/portage/sets/base.py4
2 files changed, 7 insertions, 0 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index b5461fdb4..71fa0c6d5 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -433,6 +433,9 @@ class digraph(object):
del self.nodes[child][1][parent]
del self.nodes[parent][0][child]
+ def __iter__(self):
+ return iter(self.order)
+
def contains(self, node):
"""Checks if the digraph contains mynode"""
return node in self.nodes
diff --git a/pym/portage/sets/base.py b/pym/portage/sets/base.py
index 717b16322..4de3e847d 100644
--- a/pym/portage/sets/base.py
+++ b/pym/portage/sets/base.py
@@ -37,6 +37,10 @@ class PackageSet(object):
for x in self._nonatoms:
yield x
+ def __nonzero__(self):
+ self._load()
+ return bool(self._atoms or self._nonatoms)
+
def supportsOperation(self, op):
if not op in OPERATIONS:
raise ValueError(op)