[yum-cvs] yum/yum transactioninfo.py, 1.39, 1.40 depsolve.py, 1.159, 1.160
Jeremy Katz
katzj at linux.duke.edu
Tue Apr 17 20:54:05 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv14912/yum
Modified Files:
transactioninfo.py depsolve.py
Log Message:
fix broken api
if you have your own TransactionData class, then the signature of getMembers()
changing breaks thing substantially. instead, just add a new method for the
new functionality that we want in the depsolver that can work with
subclasses too
Index: transactioninfo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/transactioninfo.py,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- transactioninfo.py 1 Apr 2007 00:11:16 -0000 1.39
+++ transactioninfo.py 17 Apr 2007 20:54:03 -0000 1.40
@@ -62,8 +62,11 @@
if self.debug:
print msg
+ def getMembersWithState(self, pkgtup=None, output_states=None):
+ return filter(lambda p: p.output_state in output_states,
+ self.getMembers(pkgtup))
- def getMembers(self, pkgtup=None, output_states=None, asSack=False):
+ def getMembers(self, pkgtup=None):
"""takes an optional package tuple and returns all transaction members
matching, no pkgtup means it returns all transaction members"""
@@ -72,16 +75,12 @@
if pkgtup is None:
for key in self.pkgdict.keys():
for p in self.pkgdict[key]:
- if not output_states or p.output_state in output_states:
- returnlist.append(p)
+ returnlist.append(p)
elif self.pkgdict.has_key(pkgtup):
for p in self.pkgdict[pkgtup]:
- if not output_states or p.output_state in output_states:
- returnlist.append(p)
+ returnlist.append(p)
- if asSack:
- return ListPackageSack(map(lambda x: x.po, returnlist))
return returnlist
def getMode(self, name=None, arch=None, epoch=None, ver=None, rel=None):
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -r1.159 -r1.160
--- depsolve.py 9 Apr 2007 21:35:27 -0000 1.159
+++ depsolve.py 17 Apr 2007 20:54:03 -0000 1.160
@@ -692,7 +692,7 @@
for pkgtup in self.rpmdb.whatProvides(r, f, v):
# check the rpmdb first for something providing it that's not
# set to be removed
- txmbrs = self.tsInfo.getMembers(pkgtup, TS_REMOVE_STATES)
+ txmbrs = self.tsInfo.getMembersWithState(pkgtup, TS_REMOVE_STATES)
if not txmbrs:
po = self.getInstalledPackageObject(pkgtup)
self.deps[req] = po
@@ -707,7 +707,7 @@
self.deps[req] = po
return po
- for txmbr in self.tsInfo.getMembers(None, TS_INSTALL_STATES):
+ for txmbr in self.tsInfo.getMembersWithState(None, TS_INSTALL_STATES):
if txmbr.po.checkPrco('provides', (r, f, v)):
self.deps[req] = txmbr.po
return txmbr.po
@@ -997,7 +997,7 @@
# now, let's see if anything that we're installing requires anything
# that this provides
- for txmbr in self.tsInfo.getMembers(None, TS_INSTALL_STATES):
+ for txmbr in self.tsInfo.getMembersWithState(None, TS_INSTALL_STATES):
for r in txmbr.po.requires_names:
prov = None
if r in goneprovs.keys():
@@ -1050,7 +1050,7 @@
for instpo in pos:
pkgtup = instpo.pkgtup
# ignore stuff already being removed
- if self.tsInfo.getMembers(pkgtup, TS_REMOVE_STATES):
+ if self.tsInfo.getMembersWithState(pkgtup, TS_REMOVE_STATES):
continue
if pkgtup in self._removing:
continue
@@ -1065,7 +1065,7 @@
# check if this provider is being removed
if provtup in self._removing:
continue
- if self.tsInfo.getMembers(provtup, TS_REMOVE_STATES):
+ if self.tsInfo.getMembersWithState(provtup, TS_REMOVE_STATES):
continue
provpo = self.getInstalledPackageObject(provtup)
@@ -1092,11 +1092,11 @@
# from having to download the filelists for a lot of cases
if r[0] == "/":
for po in self.pkgSack.searchProvides(r):
- if self.tsInfo.getMembers(po.pkgtup, TS_INSTALL_STATES):
+ if self.tsInfo.getMembersWithState(po.pkgtup, TS_INSTALL_STATES):
isok = True
break
for po in self.rpmdb.searchFiles(r):
- if not self.tsInfo.getMembers(po.pkgtup, TS_REMOVE_STATES):
+ if not self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES):
isok = True
break
if isok:
@@ -1104,7 +1104,7 @@
# now do the same set of checks with packages that are
# set to be installed.
- for txmbr in self.tsInfo.getMembers(None, TS_INSTALL_STATES):
+ for txmbr in self.tsInfo.getMembersWithState(None, TS_INSTALL_STATES):
if txmbr.po.checkPrco('provides',
(r, None, (None,None,None))):
ok = True
More information about the Yum-cvs-commits
mailing list